位置: 编程技术 - 正文

学习php设计模式 php实现命令模式(command)(php 设计模式 鸟哥)

编辑:rootadmin

推荐整理分享学习php设计模式 php实现命令模式(command)(php 设计模式 鸟哥),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php设计模式及使用场景,php 设计模式,php常用的设计模式在开发中的实例,php23种设计模式,php设计模式六大原则,php 设计模式 鸟哥,php 设计模式,php设计模式六大原则,内容如对您有帮助,希望把文章链接给更多的朋友!

学习php设计模式 php实现命令模式(command)(php 设计模式 鸟哥)

一、意图将一个请求封装为一个对象,从而使用你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。可变的方面是:何时,怎样满足一个请求命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。二、命令模式结构图

三、命令模式中主要角色命令(Command)角色:声明了一个给所有具体命令类的抽象接口。这是一个抽象角色。具体命令(ConcreteCommand)角色:定义一个接受者和行为之间的弱耦合;实现Execute()方法,负责调用接收考的相应操作。Execute()方法通常叫做执行方法。客户(Client)角色:创建了一个具体命令(ConcreteCommand)对象并确定其接收者。请求者(Invoker)角色:负责调用命令对象执行请求,相关的方法叫做行动方法。接收者(Receiver)角色:负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。四、命令模式的优点命令模式的优点:1、命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分离开。2、命令类与其他任何别的类一样,可以修改和推广。3、可以把命令对象聚合在一起,合成为合成命令。4、可以很容易的加入新的命令类。命令模式的缺点:可能会导致某些系统有过多的具体命令类。五、命令模式适用场景1、抽象出待执行的动作以参数化对象。Command模式是回调机制的一个面向对象的替代品。2、在不同的时刻指定、排列和执行请求。3、支持取消操作。4、支持修改日志。5、用构建在原语操作上的高层操作构造一个系统。Command模式提供了对事务进行建模的方法。Command有一个公共的接口,使得你可以用同一种方式调用所有的事务。同时使用该模式也易于添加新事务以扩展系统。六、命令模式与其它模式合成模式(composite模式):Composite模式可被实现宏命令原型模式(prototype模式):如果命令类带有clone(或在之前的文章中提到的copy方法)方法,命令就可以被复制。在命令模式支持多次取消操作时可能需要用到此模式,以复制当前状态的Command对象七、命令模式PHP示例

八、命令模式协作1、Client创建一个ConcreteCommand对象并指定它的Receiver对象2、某Invoker对象存储该ConcreteCommand对象3、该Invoker通过调用Command对象的execute操作来提交一个请求。若该命令是可撤消的,ConcreteCommand就在执行execute操作之前存储当前状态以用于取消命令。4、ConcreteCommand对象对调用它的Receiver的一些操作以执行该请求。九、宏命令在这里,我们以一个简单的增加和粘贴功能为例,将这两个命令组成一个宏命令。我们可以新建复制命令和粘贴命令,然后将其添加到宏命令中去。如下所示代码:

标签: php 设计模式 鸟哥

本文链接地址:https://www.jiuchutong.com/biancheng/281553.html 转载请保留说明!

上一篇:学习php设计模式 php实现合成模式(composite)(php设计思路)

下一篇:PHP7正式版测试,性能惊艳!(php7.0)

  • 退个税手续费增值税怎么计算
  • 联通的话费能干吗
  • 房地产房屋质量检测
  • 劳务外包合同需要交税吗
  • 附加税期末余额在贷方怎么处理
  • 利润表第二季度本期金额填4-6月还是1-6月数
  • 营业账簿是什么意思
  • 交通违章罚款可以在手机上交吗
  • 公司购买软件著作权
  • 预收款开票的税务处理
  • 固定资产期初余额在哪里录入
  • 境内货代公司之间付美金
  • 其他业务收入需要结转成本吗
  • 福利费税前扣除标准2023
  • 公司一次性缴纳全年社保
  • 对账单回复函
  • 活动策划费属于哪一类
  • 包装物怎么入账
  • 个人所得税分月明细申报表
  • 资产减值损失月末需要结转吗
  • 1697508432
  • 支付给董事的董事费怎么征收个人所得税?
  • 费用报销单应怎样填写
  • 经常访问的网站怎么恢复
  • 电脑开机屏幕黑屏无信号
  • 本月未认证的怎么处理
  • 视同销售情形有哪些?
  • js map foreach遍历
  • 个人出售二手房要交增值税吗
  • nodejs怎么更新版本
  • 哪些货物出口不需要运输条件
  • 临时用工账务处理流程
  • 企业合并一般债权怎么算
  • 皮丘拉湖畔的乌代布尔城市宫殿,印度 (© Chaiyun Damkaew/Getty Images)
  • shc命令
  • c++交换语句
  • 公司的内账
  • springmvc的执行流程
  • 增值税预征税率是多少
  • 汇算清缴如何调报表
  • 企业法人个人贷款哪里好贷
  • 公司账户转钱到私人账户要扣税吗
  • 资产负债表调整事项
  • 房地产预缴增值税计算公式
  • 实收资本认缴如何做账
  • 其他应付款冲账分录
  • 投资性房地产在资产负债表哪个科目
  • 阿里巴巴新任董事长叶
  • 新建厂房费用可以直接计入管理费用么
  • 企业接收到政府信息
  • 货币资金里的其他货币资金
  • 半年净资产收益率
  • 收履约保证金的会计分录
  • 软件开发的知识产权有哪些
  • 在网上如何申领发票
  • 查账征收的个体户怎么交个税
  • 农产品没有发票怎么办
  • sqlserver 锁表语句
  • win10预览版0x80072ee2
  • win7电脑初始化
  • win2003 IIS6.0+PHP+MySQL的安?配置
  • linux网络协议栈内核分析
  • 开机启动项怎么取消设置
  • vsftpd 虚拟用户权限
  • win7系统无法自动检测此网络的代理设置
  • win10系统打开任务管理器的快捷键
  • 每天学一个成语
  • Web2.0下XHTML+CSS 设计需要注意的地方小结
  • js对象常用方法
  • shell循环遍历目录
  • unity3d入门视频教程
  • 在javascript中如何定义并调用函数
  • 利用python中的scikit-learn对疫情数据挖掘
  • javascript巧用eval函数组装表单输入项为json对象的方法
  • javascript概述
  • 全面解析A型天秤座男
  • 以非gradle方式将 Eclipse 项目导入Android Studio
  • 全国低保查询系统网站
  • 四川税务网络领发票流程
  • 怎样在开票系统中增加新的名称
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设