当前位置: 首页 > news >正文

网站设计师图片如何学好网站开发

网站设计师图片,如何学好网站开发,自媒体seo是什么意思,自适应网页模板制作教程在本博客中#xff0c;我将说明如何使用Java 8 Lambda表达式以函数式编程方式实现命令模式 。 命令模式的目的是将请求封装为对象#xff0c;从而为具有不同请求#xff0c;队列或日志请求的客户端参数化#xff0c;并支持相应的操作。 命令模式是一种编写通用代码的方法我将说明如何使用Java 8 Lambda表达式以函数式编程方式实现命令模式 。 命令模式的目的是将请求封装为对象从而为具有不同请求队列或日志请求的客户端参数化并支持相应的操作。 命令模式是一种编写通用代码的方法该代码根据运行时决策对序列进行排序并执行方法。 此模式的参与者如下 命令 –声明用于执行操作的接口。 ConcreteCommand –定义Receiver对象和操作之间的绑定。 客户端 –创建ConcreteCommand实例并设置其接收者。 调用程序 –控制命令以执行请求。 接收器 –执行实际工作。 这些参与者之间的关系如下图所示 让我们看一下命令模式的具体示例看看如何用lambda表达式转换它。 假设我们有一个文件系统实用工具该工具具有要调用的操作例如打开文件写入文件和关闭文件。 可以将其实现为宏功能-即可以记录的一系列操作然后作为单个操作在以后运行。 这将是我们的接收者。 public interface FileSystemReceiver {void openFile();void writeFile();void closeFile(); } 每个操作例如openFile和writefile 都是命令。 我们可以创建一个通用的命令界面以适合这些不同的操作。 我们将此接口称为“动作”因为它表示在我们的域中执行单个动作。 这是我们所有命令对象都实现的接口。 public interface Action {public void perform(); } 现在让我们为每个操作实现Action接口。 所有这些类需要做的就是在FileReceiver上调用一个方法并将此调用包装到我们的Action接口中。 让我们以它们包装的操作命名它们并使用适当的类命名约定-因此openFile方法对应于一个名为OpenFile的类。 public class OpenFile implements Action {private final FileReceiver fileReceiver;public OpenFile(FileReceiver fileReceiver) {this.fileReceiver fileReceiver;}public void perform() {fileReceiver.openFile();}} 现在让我们实现Macro类。 宏由一系列可以依次调用的动作组成它将充当调用者。 此类可以记录动作并集体运行它们。 我们可以将动作序列存储在List中然后迭代获取每个动作以执行。 public class Macro {private final List actions;public Macro() {actions new ArrayList();}public void record(Action action) {actions.add(action);}public void run() {actions.forEach(Action::perform);} } 在填充宏时我们可以将已记录的每个命令的实例添加到Macro对象。 现在简单地运行宏将依次调用每个命令。 这是我们的客户代码。 Macro macro new Macro(); macro.record(new OpenFile(fileReceiver)); macro.record(new WriteFile(fileReceiver)); macro.record(new CloseFile(fileReceiver)); macro.run(); 如果到目前为止您一直与我在一起您会想知道lambda表达式在所有这些方面都适合。 实际上我们所有的命令类例如OpenFileWriteFile和CloseFile实际上只是希望突破包装的lambda表达式。 它们只是作为类传递的某些行为。 使用lambda表达式整个模式变得更加简单因为我们可以完全取消这些类。 让我们看看Macro类客户端如何使用lambda表达式代替命令类。 Macro macro new Macro(); macro.record(() - fileReceiver.openFile()); macro.record(() - fileReceiver.writeFile()); macro.record(() - fileReceiver.closeFile()); macro.run(); 可以通过意识到这些lambda表达式中的每一个都在执行单个方法调用这一事实来进一步改善。 因此方法引用可以直接使用。 Macro macro new Macro(); macro.record(fileReceiver::openFile); macro.record(fileReceiver::writeFile); macro.record(fileReceiver::closeFile); macro.run(); 命令模式很容易扩展可以在接收器中添加新的操作方法以创建新的命令实现而无需更改客户端代码。 JDK中的Runnable接口java.lang.Runnable是使用Command模式的流行接口。 在这个博客中我试图用Java 8 lambda表达式来表达命令模式。 通过使用lambda表达式您会看到所需的样板文件少得多从而导致代码更简洁。 这篇文章的灵感来自Richard Warburton的文章使用带lambda表达式的命令模式 。 翻译自: https://www.javacodegeeks.com/2015/09/java-8-lambda-expression-for-design-patterns-command-design-pattern.html
http://www.zqtcl.cn/news/157534/

相关文章:

  • 青岛网站定制手机软件开发和网站开发
  • 网站数据库地址是什么看企业网站怎么做到百度秒收
  • 南昌网站建设资讯wordpress dynamo
  • 网站建设招标样本南宁培训网站建设
  • 找回网站备案密码wordpress 2015主题
  • 网站电子商务平台建设域名查询系统
  • 设计制造中国第一架飞机的人是南宁百度快速优化
  • 淘宝联盟网站模板上海做企业网站
  • 繁体中文网站 怎么做wordpress禁止压缩图片
  • 怎么做图片网站百度云做.net网站
  • 长沙网上商城网站建设方案wordpress兼容mip
  • 横向网站模板上海 建筑
  • 手机wap网站程序上海网站制作库榆
  • 深圳网站建设 骏域网站建设推广软文范例大全500
  • 深圳广东网站建设套餐最近新闻事件
  • 电子商务网站建设与管理 pdf“设计网站”
  • 聊城wap网站建设清溪东莞网站建设
  • 书籍网站建设规划书app开发公司价格表
  • 小程序网站模板住建个人证书查询网
  • 西安 美院 网站建设贵阳美丽乡村建设网站
  • 平顶山市哪里有做网站的wordpress应用教程
  • 制作企业网站的实训报告医院网站设计模板
  • 要做网站照片怎么处理广东外发加工网
  • 做国际网站每年要多少钱厦门 外贸商城网站
  • 城乡建设学校官方网站程序外包网站
  • 深圳 网站设计师 招聘西数网站管理助手 伪静态
  • 广州网站备案要求国外工装设计网站大全
  • php+mysql 2012也买酒商城网站源码怎么用net123做网站
  • 西充移动网站建设如何设计一个简洁的logo
  • 济宁做网站自媒体新手入门