大话设计模式-摘要(一)

来源:互联网 发布:手机网页广告拦截软件 编辑:程序博客网 时间:2024/05/16 09:48

第1章: 面向对象的四个好处:

1.1 可维护,可扩展,可复用,灵活性好;

1.2 封装,继承,多态把程序的耦合度降低;

1.3 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。

第2章:策略者模式

2.1 策略者模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作(为了计算商品的价格),只是实现不同,它可以相同的方式调用所有的算法(cs.GetResult(double money)),减少了各种算法类与使用算法类之间的耦合。

2.2 策略者模式的优点:简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。

2.3 当不同的行为堆砌在一个类中时候,就很难避免使用条件语句来选择合适的行为。将这些行为封装在一个个独立的Strategy类中,可以在使用这些行为的类中,消除条件语句。

2.4 策略者模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。

2.5 在基本的策略模式中,选择所用具体实现的职责(使用哪种算法设计算商品价格)由客户端对象承担,并转给策略模式的Context对象。本身没有解除客户端需要选择判断的压力,而策略者模式与简单工厂模式结合后,选择具体实现的职责也可以由Context来承担,这就减轻了客户单的职责。

第4章:开放 - 封闭原则

4.1 该原则有两个特征:对于扩展是开放的,对于更改是封闭的;
4.2 怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本;
4.3 无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化的种类,然后构造出抽象来隔离哪些变化。
4.4 当变化发生时候,我们就创建抽象来隔离以后发生的同类变化。
4.5 面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码;
4.6 在开发工作展开不久就知道可能发生的变化。查明可能发生的变化所等待的时间越长,要创建正确的抽象就越困难。
4.7 拒绝不成熟的抽象和抽象本身一样重要。

第5章:依赖倒转原则

5.1 PC电脑里硬件的易插拔 == 对应软件的: 强内聚,松耦合;

5.2 依赖倒转原则 == 倒置原则 :
5.3 针对接口编程,不要对实现编程;
5.4 抽象不应该依赖于细节,细节应该依赖于抽象(即:接口);
5.5 高层模块不应该依赖于低层模块,两个都应该依赖于抽象;

更新中…

0 0
原创粉丝点击