创建型模式:
- 单例模式:保证一个类只有一个实例,提供访问该实例的全局访问;
- 工厂模式
- 建造者模式:分离了对象子组件的单独构造(builder)和装配(Director)
- 原型模式:克隆、拷贝模式,克隆出的对象的属性值与原型对象相同
结构型模式:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题
- 适配器模式:Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类能够在一起工作
- 桥接模式:处理多层继承结构,处理多维度变化的场景
- 代理模式:通过代理,控制对对象的访问,
- 组合模式:树形结构来表示关系,使用统一的方式处理部分对象和整体对象
- 装饰模式:动态的为一个对象添加新的功能
- 外观模式:为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用
- 享元模式:以共享的方式高效的支持大量细粒度对象的调用
迪米特法则(最少知识原则):一个软件实体应当尽可能少的与其他实体发生相互作用
行为型模式:关注系统中对象之间的相互交互
- 责任链模式:将能够处理同一类请求的对象连成一条链
- 迭代器模式:提供一种可以遍历聚合对象的方式,又称为:游标cursor模式
- 中介者模式:将复杂的网状结构化解为星形结构
- 命令模式:动作Action模式,事务transaction模式(数据库事务机制)
- 解释器模式:使用面向对象语言开发的编译器和解释器设计
- 访问者模式:访问同一个集合中不同类型的子对象(复杂对象)
- 策略模式:解决一个问题的算法族
- 模板方法模式:父类定义处理步骤(骨架),自类定义具体实现
- 状态模式:解决系统中复杂对象的状态切换以及不同状态下行为的封装问题
- 观察者模式:主要用于1 : N的通知
- 备忘录模式:保存对象内部状态的拷贝,用于恢复状态