设计模式的分类
创建型模式
创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程
1.单例模式
某个类只能有一个实例,提供一个全局的访问点。
2.工厂模式
一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
3.抽象工厂模式
创建相关或依赖对象的家族,而无需明确指定具体类。
4.建造者模式
封装一个复杂对象的构建过程,并可以按步骤构造。
5.原型模式
通过复制现有的实例来创建新的实例。
结构型模式
结构型模式:把类或对象结合在一起形成一个更大的结构。
将一个类的方法接口转换成客户希望的另外一个接口。
2.桥接模式
将抽象部分和它的实现部分分离,使他们都可以独立的变化。
3.装饰模式
动态的给对象添加新的功能。
4.组合模式
将对象组合成树形结构以表示“部分-整体”的层次结构。
5.外观模式
对外提供一个统一的方法,来访问子系统中的一群接口
6.享元(蝇量)模式
通过共享技术来有效的支持大量细粒度的对象
7.代理模式
为其它对象提供一个代理以便控制这个对象的访问。
行为型模式
行为型模式:类和对象如何交互,及划分责任和算法。
1.模板方法模式
定义一个算法结构,而将一些步骤延迟到子类实现。
2.命令模式
将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。
3.迭代器模式
一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构。
4.观察者模式
对象间的一对多依赖关系。
5.中介者模式
用一个中介对象来封装一系列的对象交互。
6.备忘录模式
在不破坏封装的前提下,保持对象的内部状态。
7.解释器模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器。
8.状态模式
允许一个对象在其对象内部状态改变时改变它的行为。
9.策略模式
定义一系列算法,把他们封装起来,并且使他们可以互相替换。
10.职责链模式
将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会。
11.访问者模式
在不改变数据结构的前提下,增加作用于一组对象元素的新功能。