分类
目录
模式分类
从目的来看
- 创建型模式
- 将对象的部分创建工作延后到子类或者其他对象,从而应对需求变化为对象创建时带来的冲击
- 结构型模式
- 通过类继承或者对象组合获得灵活的结构,从而应对需求变化为对象的结构带来冲击
- 行为型模式
- 通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击
从范围来看
- 类模式处理类与子类的静态关系
- 对象模式处理对象间的动态关系
从封装变化角度来看
- 组件协作
- Template Method
- Observer / Event
- Strategy
- 单一职责
- Decorator
- Bridge
- 对象创建
- Factory Method
- Abstract Factory
- Prototype
- Builder
- 对象性能
- Singleton
- Flyweight
- 接口隔离
- Façade
- Proxy
- Mediator
- Adapter
- 状态变化
- Memento
- State
- 数据结构
- Composite
- Iterator
- Chain of Resposibility
- 行为变化
- Command
- Visitor
- 领域问题
- Interpreter
重构获得模式
重构获得模式
- 怎么去看待设计模式
- 面向对象模式是 “好的面向对象设计”,所谓好的面向对象设计就是指那些可以满足 应对变化,提高复用性
- 现代软件设计的特征就是 需求的频繁变化,所以设计模式重点在于 寻求变化点,然后在变化点应用设计模式,从而来更好的应对需求的变化
- 所以说,什么时候,什么地点应用设计模式比理解设计模式结构本身更为重要!!!
- 同时,设计模式的应用不宜先入为主,一上来就是用设计模式,这是最大的错误,而且也没有一步到位的设计模式让你去使用
- 重构与模式 很重要!!! 还有脚踏实地!!!
重构关键方法
- 静态 -> 动态
- 早绑定 -> 晚绑定
- 继承 -> 组合
- 编译时依赖 -> 运行时依赖
- 紧耦合 -> 松耦合