- 单一职责原则 Single Responsibility Principle
- 对扩展开放,对修改关闭
- 简单工厂模式(Simple Factoty)
- 工厂方法模式(Method Factoty)
- 抽象工厂模式(Abstarct Factory)
- 建造者模式(Builder)
用于创建复合对象
- 单例模式(Singleton)
- 原型模式(prototype)
对象的拷贝
- 外观模式(facade)
简化接口,降低复杂性(ps: 即定义一个高级接口,操作一系列接口)
- 装饰器模式(decorator)
不改变接口的情况下,添加责任; 例子 javaI/O
- 适配器模式(adapter)
接口转换
- 享元模式(Flyweight)
采用一个共享来避免大量拥有相同内容对象的开销
- 组合模式(composite)
对象组合成树状结构,实现统一处理个别对象及对象组合
- 桥接模式(bridge)
主要特点是把抽象(abstraction)与行为实现(implementation)分离开来, 从而可以保持各部分的独立性以及应对它们的功能扩展
- 代理模式(proxy)
为另一个对象提供一个对象或占位符以控制对这个对象的访问
- 模板方法模式(template)
在一个方法内定义一个算法的骨架,具体算法步骤有由子类实现, 例如:数组的 sort方法
- 迭代器模式(Iterator pattern)
提供统一的方法顺序访问聚合对象的每个元素,而又不暴露内部细节;
- 策略模式(strategy pattern)
定义算法族,分别封装,各算法间可相互替换,一般由调用算法族的类组合算法 与状态模式类似,都可以动态改变行为(算法)区别在于状态模式由状态类控制行为的改变
- 解释器模式(interpreter)
用于解析语法树
- 观察者模式(Observer)
- 备忘录模式(memento)
存储一个对象的内部状态,用于恢复; 发起人:记录当前内部状态;定义备份的范围,负责创建和恢复数据; 备忘录:负责存储状态; 管理者:对备忘录进行管理
- 命令模式(command)
- 中介者模式(mediator)
用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
- 责任链模式(Chain of Responsibility)
很多对象由每一个对象对其下家的引用而连接起来形成一条链 例如:对申请审批的流转,权限不足向上流转直达有满足权限的人处理
- 访问者模式(visitor)
(方法重载)根据访问者的不同执行不同的方法
- 状态模式(Pattern of Objects for States)
允许对象在内部状态改变是改变他的行为;行为的改变一般由状态类控制