大话设计模式学习笔记

1 简单工厂模式:用一个单独的类来做这个创造实例的过程

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

3 单一职责问题

4 开放封闭问题:对扩展是开放的,对更改是封闭的。

5 依赖倒转原则:如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,既程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了。

6 装饰者模式:为已有功能动态地添加更多功能的一种方式。优点:把类中的装饰功能从类中搬移去除,这样可以简化原有的类,有效地把类的核心职责和装饰功能区分开了。

7 代理模式:为其他对象提供一种代理以控制对这个对象的访问。

8 工厂方法模式:工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。

9 原型模式:从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节

10 模板方法模式:把不变行为搬移到父类,去除子类中的重复代码

11 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,使得子系统更加容易使用

12 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

13 观察者模式:一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。事件 委托

14 状态模式:主要解决当一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。

15 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态

16 组合模式:定义了包含基本对象和组合对象的类层次结构,基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了,

17 迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示

18 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点

19 命令模式:1 能较容易地设计一个命令队列 2 在需要的情况下,可以较容易地将命令计入日志 3 允许接收请求的一方决定是否要否决请求

20 责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止

21 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互

22 享元模式:如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用,还有就是对象的大多数状态可以是外部状态,如果删除了对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式

posted @ 2013-08-14 18:05  褐色键盘  阅读(135)  评论(0)    收藏  举报