设计模式

设计模式的分类

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

1504265222937.jpg

实际适用情况

1.创建型模式:

单例模式:只有一个实例。较好的实现:内部类懒加载模式

原型模式:保持对象的副本,某些参数可配置

简单工厂模式:简单生成对象

抽象工厂模式:抽象工厂方法

建造者模式:跟工厂方法不一样的是他关注对象的生成顺序和对象的组成。

2.结构型模式

适配器模式:使原有接口适配客户端的接口

装饰器模式:包装,对现有客户的新加特性

外观模式:简化接口,使很多接口可以统一成一个对外接口

代理模式:中介,起代理作用。

桥接模式:jdbc接口,统一规范,向外部提供统一api接口,内部封装不同实现。

组合模式:子节点,根结点进行组装

享元模式:复用大的对象,具体细节可以动态设置。

3.结构型模式

模版方法模式:父类提供虚函数,子类具体实现。

观察者模式:被观察改变,通知并更新观察者。

迭代模式:提供顺序访问集合,并不暴漏具体内部实现。

责任链:使用一个链式的请求处理,处理请求,纯:一定会有处理;不纯:不一定会有处理。

命令模式:把 发出命令和 接受命令处理命令 分隔开

备忘录模式:不改变对象的封装,在对象外保存对象的状态,以后可以再恢复先保存的状态。

中介者模式: 中介,把很多结构类似的对象的交互封装在中介实现。

解释器模式:很少使用,编译原理。

访问者模式:定义访问者于具体对象中,可以通过不同访问者,实现对象的不同功能需求

策略模式:通过赋值给对象,然后使用不同策略

状态模式:通过子类实现不同状态,子类进行切换状态。