对开闭原则的一些理解


    从开始学习J2EE开始,就一再地被灌输开闭原则多么核心多么重要,编码也两年了,回顾一下众多的设计模式,蓦然发现开闭原则几乎是所有设计模式的抽象总结
    一、依赖倒置模式(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
    1、高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)
    2、抽象(抽象类或接口)不应该依赖于细节(具体实现类)
    3、细节(具体实现类)应该依赖抽象
    抽象:即抽象类或接口,两者是不能够实例化的。
    细节:即具体的实现类,实现接口或者继承抽象类所产生的类,两者可以通过关键字new直接被实例化
    将实现方法中使用的对象抽象出来,用接口来伪编程,再用实现类来实现接口,如果将来业务有改变,则不对现存的实现类进行修改和补充,而是重新建立一套实现类来继承相同的接口。

    当然,接口抽象也不能太过臃肿,首先要有单一职责原则,要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。然后要有接口隔离原则要求的是接口的方法尽量少,尽量有用(针对一个模块)。

    类间解耦,弱耦合,只有弱耦合了以后(迪米特法则),类的复用性才可以提高。
    对象A、对象B、对象C,其中A做的事情涉及到B,但是A不要有涉及到B的方法,A和B涉及的部分放在C中来做。
    一个对象应该对其他对象了解最少。

猜你喜欢

转载自xinyangwjb.iteye.com/blog/1457335