设计模式(1)
设计原则
面向对象编程要点:
(1) OO 基础: 抽象,封装,多态,继承。
(2) OO 原则:封装变化; 多用组合,少用继承; 针对接口编程,不针对实现编程。
(3) OO 模式:如,策略模式,定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法
的变化独立使用算法的客户。
- 设计原则一
找出应用中可能需要变化之处,把它们独立起来,不要和那些不需要的变化的代码混在一起。
- 设计原则二
针对接口编程,而不是针对实现编程。
“针对接口编程”真正的意思是“针对超类型(supertype)编程”。“接口”有多个含义,接口是一个“概念”,
也是一种Java的interface构造。另外,也可以不涉及 Java interface 的情况下,“针对接口编程”,
关键就在多态。
- 设计原则三
多用组合,少用继承
- 设计原则四:依赖倒置
要依赖抽象,不要依赖具体类。
这个原则说明:不能让高层组件依赖底层组件,而且,不管高层或低层组件,“两者”都应该依赖于抽象。
避免 OO 设计中违反依赖倒置原则:
(1)变量不可以此有具体的引用。
(2)不要让类生自具体类。
(3)不要覆盖基类中的已实现的方法。
- 设计原则五:最少知识原则
只和你的密友谈话
,减少对象之间的交互。也就是说,当你正在设计一个系统,不管是任何对象,
你都要注意它所交互的类有哪些,并注意它和这些类如何交互的。不要让太多的类 耦合在一起,免得
修改一部分,
会影响到其他的部分。
调用以下范围的方法:
(1) 对象本身
(2) 被当做方法的参数而传递进来的对象
(3) 此方法所创建或实例化的任何对象
(4) 对象的任何组件
例:
public float getTemp(){
Thermoeter thermoeter = station.getTherometer();
return thermoeter.getTemperature();
}
修改:
public float getTemp(){
return station.getTemperature();//加入一个方法,减少一个类的依赖。
}
- 设计原则六:好莱坞原则
别调用我们,我们会调用你。