设计模式
Creational
- 单例 Singleton
- 保证一个类只有一个实例,并提供一个访问该实例的全局节点
- 原型 Prototype
- 复制已有对象,无需依赖所属的类
- 工厂 Factory
- 在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型
- 生成器 Builder
- 分步骤创建复杂对象,使用相同的创建代码生成不同类型和形式的对象
Structural
- 外观 Facade
- 为程序库、框架或其它复杂类提供一个简单的接口
- 代理 Proxy
- 提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理
Behavioral
- 迭代器 Iterator
- 在不暴露集合底层表现形式的情况下遍历集合中所有元素
- 观察者 Observer
- 允许定义一种订阅机制,可在对象事件发生时通知多个观察该对象的其它对象
- 中介者 Mediator
- 减少对象之间混乱无序的依赖关系。限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作
- 状态 State
- 在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样