创建型模式
1. 工厂方法模式(Factory Method)
工厂方法是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
2. 抽象工厂模式(Abstract Factory)
抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。
3. 生成器模式(Builder)
生成器是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建代码生成不同类型和形式的对象。
4. 原型模式(Prototype)
别名:克隆(Clone)。
原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。
5. 单例模式(Singleton)
单例是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点。
结构型模式
1. 适配器模式(Adapter)
别名:封装器模式(Wrapper)。
适配器是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。
2. 桥接模式(Bridge)
桥接是一种结构型设计模式,可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。
3. 组合模式(Composite)
别名:对象树(Object Tree)。
组合是一种结构型设计模式,你可以使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。
4. 装饰模式(Decorator)
别名:装饰者模式(Wrapper)。
装饰是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。
5. 外观模式(Facade)
外观是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。
6. 享元模式(Flyweight)
别名:缓存(Cache)。
享元是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。
7. 代理模式(Proxy)
代理是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
行为型模式
1. 责任链模式(Chain of Responsibility)
别名:命令链(Chain of Command)。
责任链是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。
2. 命令模式(Command)
别名:动作(Action)、事务(Transaction)
命令是一种行为设计模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象。
该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。
3. 迭代器模式(Iterator)
迭代器是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。
4. 中介者模式(Mediator)
别名:调解人(Intermediary)、控制器(Controller)
中介者是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。
5. 备忘录模式(Memento)
别名:快照(Snapshot)。
备忘录是一种行为设计模式,允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。
6. 观察者模式(Observer)
别名:事件订阅者者(Event-Subscriber)、监听者(Listener)
观察者是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。
7. 状态模式(State)
状态是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。
8. 策略模式(Strategy)
策略是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。
9. 模板方法模式(Template Method)
模板方法是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构 的情况下重写算法的特定步骤。
10. 访问者模式(Vistor)
访问者是一种行为设计模式,它能将算法与其所作用的对象隔离开来。