decorator,命令模式与职责链模式的简单总结

1.继承来扩展行为的方法是静态的,不灵活,因此用一个外部的decrator来封装要装饰的类,且该decrator实现了要装饰的类的接口,并把client的请求传递给要装饰的类,这样decrator看起来是透明的,不存在的。但是又可以添加新的行为,即在转发前后者转发后添加行为。

2. 命令模式 action 或者trasaction模式是指 component如按钮不知道自己要执行什么动作,用户点击该按钮时不知道该执行啥,则应该把 <命令接收者,执行的动作>封装在一起。comonent直接调用接受者来响应用户点击。

先创建一个command类实现command抽象接口,然后制定该command的receiver,即由谁取处理请求,然后创建一个invoker类,指定成员为command。
即把发送请求(invoker)和处理请求(receiver)分开。

命令模式是回调函数的面向对象的实现。
命令对象串成链可以成为undo和redo的实现。
client新建具体的命令对象(指定该命令的接收者),并且注册到invoker函数里(invoker.set(command))

职责链模式中的request并不是命令模式中的命令,request可以是一个字符,收发双方协定好编码的含义来确定请求的类型。而命令模式中的命令是注册在invoker类里的,而且command里封装了receiver和响应的操作。

可以在职责链模式中把请求封装成对象,然后有新的请求时用继承来添加。
request类可以封装各个请求参数,职责链上的handler如果已经固定,则可以在里面放一个invoker接口,通过注入invoker这种面向对象的回调方法实现对未来不确定请求的应对。【这才是和command模式结合的地方】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值