设计原则

来源:互联网 发布:越过山丘 知乎 编辑:程序博客网 时间:2024/04/28 08:54

1对可变性的封装原则:找出应用中可能存在变化的部分,把它们独立出来,不要和应用中不需要变化的部分混在一处。

 

2.针对接口编程,而不要针对实现编程。它的真正含义是针对超类型(supertype)编程,实现多态。

 

3.为交互对象的松耦合而努力。

 

4.“开-闭”原则:类应该对扩展开放,对修改关闭。

恪守此原则的关键就在于抽象化。 

 

5.依赖倒置原则:要依赖抽象,不要依赖具体类。(第2点)

    为什么叫“倒置”?

    因为底层组建依赖高层抽象,而高层抽象同时也依赖这层抽象。

 

避免违反此原则的指导方针:

    变量不可以持有具体类的引用。

    不要让类派生自具体类。

    不要覆写基层以实现的方法。

 

"开-闭"是目标,依赖倒置是手段。

 

 

6.一个类,一个责任。

 

7.最少知识原则:只和你的密友交谈。

    这个原则告诉我们,不要和太多的类耦合,减少对象之间的交互,只留下一些“密友”。

在一个对象的方法内,我们只应该调用一下范围的对象:

    该对象本身。

    被当做方法参数而传进的对象。

    此方法创建或实例化的任何对象。

    本身对象的任何组件。

    

    迪米特法则:一个软件实体应当与尽可能少的其他实体发生相互作用。

 

8.好莱坞原则:别调用(打电话给)我,我会调用(打电话给)你。
    好莱坞原则可以给我们一种防止“依赖腐败”的方法。当高层组件依赖低层组件,而低层组件又依赖高层组件,而高层组件又依赖边侧组件,而边侧组件又依赖低层组件时,依赖腐败就发生了。
    在好莱坞原则下,我们允许低层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎样使用这些低层组件。换句话说,高层组件对待低层组件的方式就是“别调用我,我会调用你”。

 

    这个原则,就是避免高层组件和低层组件的环状依赖。

 

    好莱坞原则和依赖倒置原则:

    依赖倒置原则教我们尽量避免使用具体类,而多使用抽象。而好莱坞原则适用在创建框架或组件上的技巧,好让低层组件能够被挂钩进计算中,而且又不会让高层组件依赖低层组件。两者的目标都在于解耦,但是依赖倒置原则更加注重如何在设计中避免依赖。好莱坞原则教我们一个技巧,创建一个有弹性的设计,允许低层结构能够互相操作,而又防止其他类太过依赖它们。

 

9.里氏代换原则:任何基类可以出现的地方,子类一定可以出现。

里氏代换原则是对实现抽象化的具体步骤的规范。

 

10.合成/聚合复用原则:尽量使用合成/聚合,少用继承。

 

11.接口隔离原则:应当为客户提供尽量小的单独的接口,而不要提供大的接口。一个类对另外一个类的依赖性应当建立在最小的接口上。

    a.以角色划分接口的原则。

    b.定制服务原则,为不同的客户提供窄、宽不同的接口。

    过于臃肿的接口就是接口的污染。

原创粉丝点击