创建模式
单例模式(Singleton Pattern):
就是一次创建多次使用,它的对象不会重复创建,可以全局来共享状态。
工厂模式(Factory Method Pattern):
可以通过接口来进行实例化创建,创建时不需要知道创建对象的具体参数,直接获取到最终的产品对象。
举例来说,工厂模式就像我们买车一样,你不需要知道车辆的具体参数指标,只需要输入车辆的型号就可以买到车。哪怕厂家对车辆进行调参后,你获得的还是这个型号的车。
建造者模式(Builder Pattern):
这种模式顾名思义,就是在创建对象的时候需要调用多个建造步骤,比如制造车,分为安装轮胎,安装底盘,安装发动机等,创建对象的时候按需求调用就行。针对所有车的建造流程大同小异,所以可以定义一个建造车辆的抽象接口类定义所有的建造步骤。
原型模式(Prototype Pattern):
克隆一个原来的对象。
结构模式
适配器模式(Adapter Pattern):
将一个类的接口转换为客户端希望的另一个接口,使得原本因接口不兼容而无法一起工作的类可以一起工作。
做一个适配类,把原来那个类的接口重新重新处理一下。
桥接模式(Bridge Pattern):
将抽象与实现解耦,使得两者可以独立地变化。
装饰者模式(Decorator Pattern):
动态地给一个对象添加额外的功能,而不改变其结构。
外观模式(Facade Pattern):
为复杂子系统提供一个简化的接口,使得客户端使用起来更加方便。
享元模式(Flyweight Pattern):
通过共享对象来减少内存使用,尤其是大量相似对象时。
组合模式(Composite Pattern):
将对象组合成树形结构来表示部分-整体的层次结构,客户端可以一致地对待单个对象和组合对象。
代理模式(Proxy Pattern):
为另一个对象提供代理以控制对该对象的访问。
行为模式
责任链模式(Chain of Responsibility Pattern):
为请求创建一个链式的处理对象结构,允许多个对象有机会处理请求。
命令模式(Command Pattern):
将请求封装成对象,从而允许使用不同的请求、队列或日志来参数化客户端。
解释器模式(Interpreter Pattern):
为语言的句法定义一种解释器,解释器可以处理语言中的各种表达式。
迭代器模式(Iterator Pattern):
提供一种方法顺序访问一个聚合对象中的元素,而又不暴露该对象的内部表示。
中介者模式(Mediator Pattern):
用一个中介者对象来封装一系列对象之间的交互,减少对象之间的直接耦合。
备忘录模式(Memento Pattern):
在不暴露对象实现细节的情况下,保存对象的内部状态,并可以在需要时恢复该状态。
观察者模式(Observer Pattern):
定义对象之间的一对多依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。
状态模式(State Pattern):
允许对象在其内部状态改变时改变其行为,行为的改变看起来像是改变了对象的类。
策略模式(Strategy Pattern):
定义一系列算法,把它们一个个封装起来,并使它们可以互换。
模板方法模式(Template Method Pattern):
在一个方法中定义一个算法的框架,允许子类在不改变算法结构的情况下重新定义某些步骤。
访问者模式(Visitor Pattern):
表示一个作用于某对象结构中的各个元素的操作,允许在不改变各个元素类的前提下定义作用于这些元素的新操作。