“系统的数据和行为都正确,单接口不符时,我们应该考虑使用适配器,目的是是控制范围之外的一个原有对象与某个接口匹配。适配器模式主要用于希望复用一些现存的类,但是接口又与复用环境不一致的情况。”(《大话设计模式》)
迭代器模式(Iterator Pattern) Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.(它提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。)
组合模式(Composite Pattern) Compose objects into tree structure to represent part-whole hierarchies.Composite lets clients treat individual objects and compositions of objects uniformly.(将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。)
观察者模式(Observer Pattern) Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.(定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。)
门面模式(Facade Pattern)Provide a unified interface to a set of interface in a subsystem.Facede defines a higher-level interface that makes the subsystem easier to use.(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供了一个高层次的接口,使得子系统更容易使用。)
备忘录模式(Memento Pattern) Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.(在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原来保存的状态。)
访问者模式(Visitor Pattern)
Represent an operation to be performed on the elements of an object structure.Visitor lets you define a new operation without changing the classes of the elements on which it operates.(封装一些作用于某种数据结构中的各种元素,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。)
状态模式
Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.(当一个对象在状态改变时允许其改变行为,这个对象看起来像改变了其类。)
解释器模式(Interpreter Pattern)
Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences int the language.(给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。)/p>
享元模式(Flyweight Pattern) Use sharing to support large numbers of fine-grained objects efficiently.(使用共享对象可有效地支持大量的细粒度对象。)
桥梁模式(Bridge Pattern)
Decouple an abstraction from its implementation so that the two can vary independently.(将抽象和实现解耦,使得两者可以独立的变化。)
注:本文中的内容参考的是秦小波的《设计模式之禅》。