《深入浅出设计模式》简记
1 工厂模式(factory)
1.1 简单工厂模式
1.2 工厂方法模式
1.3 抽象工厂模式
2 单例模式(singleton)
3 建造模式(build)
4 原型模式(proto)
5 适配器模式(adapter)
将一个类的接口转换成客户希望的另外一个接口。adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
6 桥梁模式(bright)
将抽象部分与它的实现部分分离,使它们都可以独立地变化
7 组合模式(composite)
将对象以树形结构组织起来,以达成“部分—整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
8 装饰模式(wrapper/decorator)
装饰模式(decorator)也叫包装器模式(wrapper)。
9 门面模式(facade)
门面模式(facade)又称外观模式。
10 享元模式(flyweight)
事物之间都是不同的,但是又存在一定的共性,因此我们应该尽量将事务的共性共享,而又保留它的个性,为了做到这一点,享元模式中区分了内蕴状态和外蕴状态。使用条件:系统中有大量的对象,它们使系统的效率降低;这些对象的状态可以分离出所需要的内外两部分。
10.1 单纯享元模式
10.2 复合享元模式
11 代理模式(proxy)
12 责任链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。
13 命令模式(invoker)
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对i去年光球排队或记录请求日志,以及支持可撤销的操作。
14 解释器模式(expression)
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。而且当文法简单、效率不是关键问题的时候效果最好。
15 迭代器模式(iterator/cursor)
16 调停者模式(mediator)
用一个调停对象来封装一系列的对象交互。调停者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。
17 备忘录模式(memento/token)
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
18 观察者模式(observer)
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
19 策略模式(strategy)
定义一系列的算法,把这些算法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响的变化。
20 状态模式(state)
允许一个对象在其内部状态改变时改变它的行为。
21 模板模式(template)
22 访问者模式(visitor)
表示一个作用于某对象结构的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。