设计模式学习笔记:一、设计模式简介

来源:互联网 发布:免费简历解析软件 编辑:程序博客网 时间:2024/04/30 00:06

23种设计模式名称以及意图:

1.Abstract Factory :提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类;

2.Adapter:将一个类的接口转换成客户希望的另外一个接口,该模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;

3.Bridge:将抽象部分与其实现部分分离

4.Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;

5.Chain of Responsibility:为解除请求的发送者和接受者之间的耦合,而使多个对象都有机会处理这个请求,。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它;

6.Command:讲一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作;

7.Composite:将对象组合成树形结构以表示“部分-整体”的层级结构,该模式使得用户对单个对象和复合对象的使用具有一致性;

8.Decorator:动态的给一个对象添加一些额外的职责,就扩展功能而言,Decorator模式比生成子类方式更为灵活;

9.Facade:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;

10.Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。该模式使一个类的实例化延迟到其子类;

11.Interpreter:给定一个语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子;

12.Iterator:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示;

13.Mediator:用一个中介对象封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互;

14.Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以后可以将该对象恢复到保存的状态;

15:Observer:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并且自动刷新;

16:Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象;

17:Proxy:为其他对象提供一个代理以控制对这个对象的访问;

18:Singleton:保证一个类只有一个实例,并提供一个访问它的全局访问点;

19:State:允许一个对象在其内部状态改变时改变它的行为。

20:Strategy:定义一系列算法并一个个封装起来,使他们可以相互替换。本模式使得算法的变化可独立于使用它的客户;

21:Template Method:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。该模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤;

22:Visitor:表示一个作用于某对象结构中的个元素的操作。可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

23:Flyweight:运用共享技术有效的支持大量细粒度的对象;


设计模式分类:

1.按照目的准则,即模式用来完成什么工作,分为 创建型(Creational )、结构型(Structural)、行为型(Behavioral)。

 创建型模式与对象的创建有关,包括:Factory Method、Abstract Factory、Builder、Prototype、Singleton;

 结构型模式处理类或对象的组合,包括:Adapter、Bridge、Composite、Decorator、Facade、Flyweight、Proxy

 行为型模式对类或对象怎样交互和怎样分配职责进行藐视,包括:

Interpreter、Template Method、Chain of Responsibility、Command、Iterator、Mediator、Memento、Observer、State、Strategy、Visitor


2.按照范围准则,指定模式主要用于类还是对象:类模式处理类和子类直接的关系,这些关系通过继承建立,是静态的,在编译时刻已确定;对象模式处理对象间的关系,这些关系具有动态性,在运行时刻可变;

创建型类模式将对象的部分创建工作延迟到子类,Factory Method;创建型对象模式则将其延迟到另一个对象中。

结构型类模式使用继承机制来组合类,Adapter(类);结构型对象模式则描述了对象的组装方式;

行为型类模式使用继承描述算法和控制流、Iterpreter、Template Method;行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务;



设计模式之间的相互关系如下图所示:


 


=======================================================================

内容摘自图书: 《设计模式:可复用面向对象软件的基础》

作为个人电子读书笔记以便查看和更好的理解

=======================================================================

0 0
原创粉丝点击