1 | 设计模式 | 简要说明 | 可改变的方面 |
2 | Abstract Factory | 提供创建相关的或者相互依赖的一族对象的接口,使我们不需要指定具体的类。 | 产品对象族 |
3 | Builder | 将一个复杂对象的结构与它的描述隔离开来,使我们使用相同的结构可以得到不同的描述。 | 如何建立一种组合对象 |
4 | Factory Method * | 定义不念一个创建对象的接口,但由子类决定需要实例化哪一个类。让一个类服从子类的实例。 | 实例化子类的对象 |
5 | Prototype | 使用一个原型来限制要创建的类的类型,通过拷贝这个原型得到新的类。 | 实例化类的对象 |
6 | Singleton | 保证一个类只有一个实例,并提供一个全局性的访问点。 | 类的单个实例 |
7 | Adapter * | 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。 | 与对象的接口 |
8 | Bridge | 将类的抽象概念和它的实现分离开来,使它们可以相互独立地变化。 | 对象的实现 |
9 | Composite | 将对象组成树结构来表示局部和整体的层次关系。客户可以统一处理单个对象和对象组合。 | 对象的结构和组合 |
10 | Decorator | 给对象动态地加入新的职责。它提供了用子类扩展功能的一个灵活的替代。 | 无子类对象的责任 |
11 | Facade | 给一个了系统的所有接口提供一个统一的接口。它定义了更高层的接口,使该子系统更便于使用。 | 与子系统的接口 |
12 | Flyweight | 提供支持大量细粒度对象共享的有效方法。 | 对象的存储代价 |
13 | Proxy | 给另一个对象提供一个代理或定位符号,以控制对它的访问。 | 如何访问对象,对象位置 |
14 | Chain of Responsibility | 通过给多个对象处理请求的机会,减少请求的发送者与接送者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。 | 可满足请求的对象 |
15 | Command | 将一个请求封装一个对象,从而将不同的请求参数化并进行排队或登记,以支持撤消操作。 | 何时及如何满足一个请求 |
16 | Interpreter * | 给定一种语言,给出它的语法的一种描述方法和一个解释器,该解释器用这种描述方法解释语言中的句子。 | 语言的语法与解释 |
17 | Iterator | 提供一种顺序性访问一个聚集对象中元素的方法,而不需要暴露它的底层描述。 | 如何访问,遍历聚集的元素 |
18 | Mediator | 定义一个对象来封装一系列对象的交互。它保持对象间避免显式地互相联系,而消除它们间的耦合,还可以独立地改变对象间的交互。 | 对象之间如何交互及与那些对象交互 |
19 | Memomeno | 在不破坏封装的条件下,获得一个对象的内部状态并将它外部化,从而可以在以后使对象恢复到这个状态。 | 何时及哪些私有信息存储在对象之外 |
20 | Observer | 定义一个对象间一对多的依赖关系,当一个对象改变状态时,所有与它有依赖关系的对象都得到通知并自动更新。 | 依赖于另一个对象的对象数量,依赖对象如何保持最新数据 |
21 | State | 允许一个对象在内部状态改变时改变自己的行为,对象看起来似乎能改变自己的类。 | 对象的状态 |
22 | Strategy | 定义一族算法,对每一个都进行封装,使它们互相可交换。它使算法可以独立于使用它的用户而变化。 | 算法 |
23 | Template Method * | 定义一个操作的算法骨架,使某些步骤决定于子类。它使子类重定义一个算法的某些步骤,但不改变整个算法的结构。 | 算法的步骤 |
24 | Visitor | 描述在一个对象结构中对某个元素需要执行的一个操作。它使我们在不改变操作的元素类的条件下定义新的操作。 | 无需改变其类而可应用于对象的操作 |
1--6为创建性设计模式;7--13为结构性模式;13--24为行为性模式 注:其中带*为关于类的。其他的关于对象的。 |
设计模式目录分类
最新推荐文章于 2024-09-08 15:27:53 发布