23种设计模式
设计模式主要分为三大类:
创建型、结构型、行为型
创建型
创建型模式简单来说就是用来创建对象的。
一共有五种:单例模式、建造者模式、工厂方法模式、抽象工厂模式、原型模式。
单例模式:确保某一个类只有一个实例,并且提供一个全局访问点。
建造者模式: 用来创建复杂的复合对象。
工厂方法模式 :让子类来决定要创建哪个对象。
抽象工厂模式:创建多个产品族中的产品对象。
原型模式:通过复制原型来创建新对象。
结构型
结构型模式主要是用于处理类或者对象的组合。
一共有七种:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式
代理模式 :控制客户端对对象的访问。
组合模式:将整体与局部(树形结构)进行递归组合,让客户端能够以一种的方式对其进行处理。
适配器模式:将原来不兼容的两个类融合在一起。
装饰者模式 :为对象添加新功能。
享元模式:使用对象池来减少重复对象的创建。
外观模式 :对外提供一个统一的接口用来访问子系统。
桥接模式:将两个能够独立变化的部分分离开来。
行为型
行为型模式主要是描述类或者对象是怎样交互和怎样分配职责的。
一共有十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
策略模式:封装不同的算法,算法之间能互相替换。
状态模式:根据不同的状态做出不同的行为。
责任连模式:将事件沿着链去处理。
观察者模式:状态发生改变时通知观察者,一对多的关系。
模板方法模式:定义一套流程模板,根据需要实现模板中的操作。
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素。
迭代器模式:保存对象的状态,在需要时进行恢复。
访问者模式:稳定数据结构中,定义新的操作行为。
中介者模式:将网状结构转变为星型结构,所有行为都通过中介。
解释器模式:定义语法,并对其进行解释。
命令模式 :将请求封装成命令,并记录下来,能够撤销与重做。