设计模式-设计模式之间的对比

1.装饰器和适配器,外观模式, 都是在包装对象,但是它们的意图不一样
    (1) 适配在于转换接口,以达到客户所希望的那样接口
    (2)装饰器,在于增加现有接口中的新职责和能力,不改变接口
    (3)外观模式在于简化接口。它将一个或数个类的复杂的一切都隐藏。只暴露一个美好的外观但没有隔离子系统,如果需要更高级的操作,可以之间操作原来的子系统。外观不只是简化了接口,也将客户从组件的子系统中解耦

2.策略模式和模板方式
   (1)策略模式:定义一个算法家族,让这些算法可以相互替换,不控制算法步骤。(组合,更具有弹性),不依赖任何人,
   (2)模板方法:定义一个算法大纲,让子类去实现具体步骤(继承),对算法步骤有控制全,依赖超类

3.状态模式和策略模式
   (1)策略模式是围绕可以互换的算法来创建成功的业务。状态模式通过改变对象的状态来帮助对象控制自己的行为。
   (2)状态模式将一群行为封装在状态对象中,context的行为随时可委托到哪个状态对象中的一个,随时间的流逝,当前状态在一个状态对象集合中游走改变,以反映出context内部的状态。因此,context的行为也会跟着改变,但是context的客户对于状态对象了解不多,甚至根本是浑然不觉
  (3)策略模式,客户通常主动指定Context所要组合的策略对象是哪一个。固然策略模式让我们具有弹性,能够在运行时改变策略,但对于某个context对象来说,通常都只有一个最适合的策略对象


4.代理模式与装饰这模式
  (1)结构相似两者都是用一个对象把另一个包起来,然后委托给其他对象。但它们的目的是不一样的。
  (2)装饰器为对象增加行为。而代理是控制对象的访问。虽然在 5 中,显示正在加载的图片也类似增加对象的行为。但是更重的是,这个代理控制对象的访问。比如代理是ImageProxy, 控制对象是ImageIcon,代理将客户从ImageIcon中解耦。如果它们之间没有解耦,客户就必须等到每幅图到被取回,才能绘制在界面上,代理控制了ImageIcon的访问,以便在图像完全创建之前提供屏幕上的代理,一旦ImageIcon被创建,代理就被允许访问ImageIcon

5.代理模式与适配器
代理和适配器都是挡在其他对象的前面,并负责将请求转发给它们。适配器会改变对象适配的接口,而代理则实现相同的接口。
由一个额外相似性牵涉到保护代理,保护代理可以根据客户的角色来决定是否允许客户访问特定的方法。所以保护代理可能只提供给客户部分接口。这就和某些适配器和相似

参考:《Head First设计模式(中文版)》 和 《Gof设计模式》 及网络资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值