设计模式(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();//加入一个方法,减少一个类的依赖。 } ```- 设计原则六:好莱坞原则 别调用我们,我们会调用你。