一、什么是设计模式?
设计模式:是一套被反复使用,多数被反复使用,多数人数知晓的,经过分数编目的、代码设计经验总结(注意:模式不是代码,而是某类问题的通用实际解决模式)
二、四人帮(GOF:Cang of Four)
三、设计模式的作用
为了可通用代码:让代码更容易让人理解、保证代码的可靠性
四、设计分类的23种
1、创建模式(对象实例化的模式,创建型模式或解耦了对象的实例化过程)
(1)工厂模式:一个工厂类根据代入的数量决定创建出哪一种产品类实例
(2)抽象工厂式:创建相关或依赖对象的家族,而无需明确实体类
(3)单例模式:确保一个类最多只能有一个实例,并提出一个全局的访问点
(4)建造者模式:封装一个复杂对象的过程,并可以按步骤构造
(5)原型模式:通过复制现在有的实例来创建新的实例
2.结构型模式
(1)适配器模式:将一个类的方法接口的转换模式客户希望的另外一个接口
(2)装饰模式:动态的对象添加新的功能
(3)代理模式:为其他的对象提供一个代理一控制对这个对象的访问
(4)外观模式:提供统一的方法来访问子系统的一群接口
(5)桥接模式:将抽象部分与它实现部分分离、使他们都可以独立的变化
(6)组合模式:将对象组合成树形结构以表示“部分.整体”的层次结构
(7)享元模式:通过恭喜技术有效的支持大量细粒度的对象
3.行为模式(类和对象如何交互,及划分责任和算法)
(1)策略模式:
a.分析项目的变化与不变部分,提取变化部分,抽象或接口+实现
b、分别封装行为接口,实现算法族、超类里放行为接口对象,在子类里具体设定行为对象
c、实例:person 的行为
d、定义一系类的算法,把他们封装起来,并使他们相互替换
(2)模板方法模式:定义一个算法结构,而将一些步骤延迟到子类中实现
(3)观察者模式:对象间的一对多的依赖关系
(4)迭代子模式:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构
(5)责任链模式:请求发送者和接受者之间解耦,使得多个对象都有机会处理这个请求
(6)命令模式:将命令请求封装为一个对象,使得可用不同的请求进行参数化
(7)备忘录模式:在不破坏封装性的前提下,保存对象的内部状态
(8)状态模式:允许一个对象在其内部状态改变它的行为
(9)访问者模式:在不改变模式数据的结构的前提下,增加作用于一组对象交互
(10)中介模式:用一个中介对象来封装一系列的对象交互
(11)解释器模式:给定一个语言,定义它的方法的一种表示,并定义一个解释器