设计模式学习总览
1 设计模式的类型
最具代表性的是这样分类,不同书可能略有差异,不能拘泥于这二十三种
- 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式
- 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
- 行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)
2 设计模式介绍
- 是解决某种问题的解决方案,设计模式代表了最佳实践,是经验的总结
- 设计模式本质是为了提高软件的可维护性,通用性和扩展性,并降低软件复杂度
- 设计模式不拘泥于语言
3 创建型模式
- 单例模式 (某个类只能有一个实例,提供一个全局的访问点)
- 工厂方法模式 (一个工厂类根据传入的参量决定创建出那一种产品类的实例,定义一个创建对象的接口,让子类决定实例化那个类)
- 抽象工厂模式 (创建相关或依赖对象的家族,而无需明确指定具体类)
- 建造者模式 (封装一个复杂对象的构建过程,并可以按步骤构造)
- 原型模式 (通过复制现有的实例来创建新的实例)
4.结构型模式
- 适配器模式 (将一个类的方法接口转换成客户希望的另外一个接口)
- 桥接模式 (将抽象部分和它的实现部分分离,使它们都可以独立的变化)
- 组合模式 (对象组合成树形结构以表示“”部分-整体“”的层次结构)
- 装饰模式 (动态的给对象添加新的功能)
- 外观模式 (对外提供一个统一的方法,来访问子系统中的一群接口)
- 亨元模式 (通过共享技术来有效的支持大量细粒度的对象)
- 代理模式 (为其他对象提供一个代理以便控制这个对象的访问)
5.行为型模式
- 访问者模式(将数据操作和数据结构分离的设计模式)
- 模板模式(定义一个算法结构,而将一些步骤延迟到子类实现)
- 策略模式(定义一系列算法,把他们封装起来,并且使它们可以相互替换)
- 状态模式(允许一个对象在其对象内部状态改变时改变它的行为)
- 观察者模式(对象间的一对多的依赖关系)
- 备忘录模式(在不破坏封装的前提下,保持对象的内部状态)
- 中介者模式(用一个中介对象来封装一系列的对象交互)
- 迭代器模式(一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构)
- 解释器模式(给定一个语言,定义它的文法的一种表示,并定义一个解释器)
- 命令模式(将命令作为一个类来保存,当要使用的时候可以直接拿来使用)
- 责任链模式(就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕)