一句话描述一种设计模式
为了让自己以后能在极短的时间内复习和查阅某种GoF设计模式,于是我对每一种模式用尽量精简的一句话来描述,以达到望文知义的目的。整理如下:
- Factory Method:
提供一个工厂类,该类可以大批量地重复生产相对固定的几种产品。 - Abstract Factory:
提供一个工厂类接口,并以此接口实现不同的工厂类。 - Builder:
提供一个Builder类,让它负责生产各种零件,并组装成一个完成的产品。 - Prototype:
预先创建好几个不同的对象,每当需要时就克隆一个过来。 - Singleton:
在一个系统中创建并只允许创建唯一一个全局对象。 - Adapter:
将一个类的接口转换成另外一个更恰当的接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 - Bridge:
将抽象部分与它的实现部分分离到两个类层次中,使他们都可以独立地变化。 - Composite:
将对象组合成层次结构,并使得对单个对象和组合对象的使用具有一致性。 - Decorator:
动态地给一个对象添加一些额外的职责。 - Facade:
为一个复杂的子系统提供一个简单的使用接口,尽管它没有包含全部功能,但这在大多数情况下已经够用了。 - Flyweight:
运用共享技术有效地支持大量细粒度的对象。 - Proxy:
为其它对象提供一种代理以控制对这个对象的访问,二者的接口通常一致。 - Interpreter:
与其为每一种情况构造一个特定的算法,不如使用一种通用的解释算法来解释执行一个自定义文法的表达式。 - Template Method:
在一个非虚函数中定义算法的骨架,而通过一系列虚函数来定义算法骨架中的不同步骤。 - Chain of Responsibility:
将请求接收者连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 - Command:
把一个请求封装成一个对象来传递,而不关心接受者的信息。 - Iterator:
提供一种方法顺序访问一个聚合对象中的各个元素。 - Mediator:
用一个中介对象来封装一系列的对象交互,从而降低它们之间的耦合。 - Memento:
在对象之外保存该对象的状态,以便以后能方便地恢复它的状态。 - Observer:
当被观察者的状态发生改变时,所有观察者都得到通知并自动更新。 - State:
当对象内部状态改变时,通过切换到不同的类来改变对象的行为。 - Strategy:
定义一系列算法,把它们一个个封装起来,并使它们可以互相替换。 - Vistor:
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
(EOF)
该文章引自: