读书摘要-大话设计模式

第二章 策略模式
   
    策略模式与简单工厂(Factory Method)的结合:

    在基本的策略模式中,选择所使用的具体策略实现的职责由客户端用户承担,这并没有解除客户端需要选择判断的压力;将策略模式与简单工厂模式结合后(在 Context类中加入Factory Method的特性),选择具体实现的职责也由Context来承担,这样最大化的减轻了客户端的负担。

第四章 开放封闭原则

    面对需求的变化,对程序的改动是通过增加新代码进行的,而不是更改现有的代码——这是“开发、封闭原则”的精髓。

第六章 装饰模式

    装饰模式的优点在于:将类的核心功能和装饰性功能区进行区分,且消除了若干装饰性功能进行组合时可能的代码重复


第八章 工厂方法(
Factory Method )

    工厂方法
与简单工厂的区别:

     简单工厂模式的最大优点在与工厂类中包含了必要的逻辑判断,能够根据客户端给出的条件动态实例化合适的类,对客户端来说,去除了同同特定产品的依赖关系。 但它的问题在于,如果要增加新的产品,则必须要对工厂类中的逻辑判断部分(switch/case)进行修改,这违背了“封闭、开放原则”

    简单工厂与工厂方法的最大区别在于在工厂方法中,为所有工厂类增加了一个抽象基类;这样工厂方法将简单工厂的内部逻辑判断转移到了客户端来进行,

    概括的说,工厂方法克服了简单工厂违背“开发那个、封闭原则”的缺点,又保持了封装对象创建过程的特点;缺点在于没增加一个新的产品,就要相应增加一个新的具体工厂类。

第九章 原型模式


    使用原型模式,不需要重新初始化对象,就可以动态的复制对象的运行时状态。

第十章  迪米特法则


    迪米特法则(LoD)也叫最少依赖原则:如果两个类不需要彼此直接通信,那么这两个类就不应当发生直接的相互作用;如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

    迪米特法则的实质是保证类之间的“低耦合”。


第十五章 抽象工厂


    依赖注入(Dependency Injection)与反射机制

    所有使用简单工厂的地方,都可以考虑使用反射技术来去除switch/case或if这样的分支语句,消除分支判断带来的耦合。


第二十一章 Singleton

    Double-Check Locking与线程安全


第二十五章 中间者模式


    尽管将一个系统分割成多个对象通常增加其可复用性,但是对象将相互连接的激增又会降低其可复用性,这是因为大量连接的存在使得一个对象无法在缺少其他对象支持的情况下工作,系统表现为一个不可分割的整体。

    中介者模式是“迪米特法则”的一个典型应用,其优点和缺点都源自于集中化控制。

第二十七章 解释器模式


    正则表达式是解释器模式的典型应用。


第二十八章 访问者模式


    访问者模式目的是要将操作和数据结构进行分离,它最适合于数据结构较为稳定,而算法和操作易于变化的系统,因为访问者模式使得操作的增加变得很容易。
    访问者模式最大的优点在于很容易增加新的操作,只需要增加一个新的访问者就可以了。反过来,访问者模式的缺点在于使得增加新的数据结构变得困难了。

    大多数时候你不需要访问者模式,但是一旦你需要访问者模式时,那就是真的需要它了。










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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值