【设计模式从入门到精通】设计模式大杂烩
目录
设计模式大杂烩
1、概念性知识
设计模式终极目标(世界观)
- 高内聚、低耦合
- 易扩展、易维护
设计模式核心思想(方法论)
- 组合聚合代替继承
- 面向接口编程
颗粒度
- 颗粒度:系统结构功能的分解细化程度、复杂对象的分解程度
如何把握“度”
- 权衡各种因素,适当颗粒化,使系统处于合适的颗粒度
单一职责
要使得系统功能专业而单一,降低对象与对象之间、各个功能模块之间的依赖和耦合
- 软件的每一个操作过程不要太过复杂,否则不便于系统的维护和解耦
- 软件结构或操作过程不能太细化,否则造成系统各部件之间的频繁调用,运行效率降低
无方法接口的作用
- 标示
重构原则
- 抽象类应当拥有竟可能多的行为,应当拥有尽可能少的数据
“好莱坞”原则
don‘t call us, we‘ll call you
不要打电话给我们,我们会打电话给你
这是著名的“好莱坞”原则。在好莱坞,把简历递交给演艺公司后就只有回家等待。由演艺公司对整个娱乐项的完全控制,演员只能被动式的接受公司的差使,在需要的环节中,完成自己的演出
模板方法模式充分的体现了“好莱坞”原则。IOC
的原理就是基于好莱坞原则,所有的组件都是被动的,所有的组件初始化和调用都由容器负责
允许底层组件将自己挂钩到高层组件的算法过程中,什么时候调用,则是按照高层的处理逻辑决定,有效避免了系统环状依赖
开闭原则如何实现?
- 面向抽象/接口编程:也是依赖倒转原则,多用抽象类和接口
- 封装变化部分
符合设计原则的典型设计模式
- 单一职责原则:状态模式
- 依赖倒转原则:桥接模式
- 接口隔离原则:备忘录模式
- 迪米特法则:外观模式、中介者模式、命令模式
2、设计模式补充
原型模式
- 实现
Cloneable
接口,重载clone
方式产生新对象时,不会执行类的构造方法
备忘录模式
- 白箱备忘录模式:普通的方式,即只有一个备忘录具体类
- 黑箱备忘录模式:定义一个备忘录窄接口,备忘录具体实现类作为私有内部类调用,并且备忘录类中所有属性和方法均私有化,不对外暴露;同时备忘录管理者只接收窄接口
弥补老系统缺陷的设计模式
老系统代码,一般不轻易改动原代码,这时候需要对老系统做功能扩展,如下设计模式应运而生
- 适配器模式
- 外观模式
- 代理模式
双向耦合的设计模式
你中有我、我中有你:即一个对象持有另一个对象,另一个对象也持有该对象的情况。当然,为了解耦,一般是接口或抽象类之间相互持有
- 中介者模式、观察者模式、访问者模式、状态模式
常用的设计模式必知必会
- 创建型模式:单例模式、工厂方法模式、抽象工厂模式
- 结构型模式:外观模式、代理模式
- 行为型模式:模板方法模式、状态模式、策略模式