依赖倒转原则
一、概念 1.高层模块不应该依赖低层模块。两个都应该依赖抽象。 2.抽象不应该依赖细节。细节应该依赖抽象。 二、详细说明 要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。 主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必再弄一个抽象类做它的父类,这样有画蛇添足的感觉。 正是有了里氏代换原则,才使得依赖倒置原则成为可能。由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。 优点:系统扩展灵活。 缺点:需要大量的类。 三、几点规则 依赖倒置原则的本质就是通过抽象(抽象类或者接口)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合,如果需要使用该规则,需要遵循以下几个规则: 1.每个类尽量都有接口或者抽象类,或者抽象类和接口两者都具备(这个是该原则的基本要求,接口和抽象类都是抽象,有了抽象才可能依赖倒置)。 2.变量的表面类型尽量是接口或者抽象类。 3.任何类都不应该从具体类派生。 4.尽量不要覆写基类的方法(如果基类是一个抽象类,并且该方法已经实现了,子类尽量不要覆写。类间依赖的是抽象,覆写了抽象方法,对依赖的稳定性会产生一定的影响)。 5.结合里氏替换法使用。 注意:这个原则对于那些虽然具体但是却稳定的类来说似乎并不是很合适, 如果一个类不太会改变, 而且也不太可能创建其他的派生类,那么依赖它似乎并没有太大的危害。比如String类。 参考:http://www.voidcn.com/article/p-tklyhitz-pu.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |