设计心法之依赖倒置原则

依赖倒置原则(DIP):

关键词:面向接口编程

定义:

高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象,其核心思想是:要面向接口编程,不要面向实现编程。

比如我们的抽象类、接口、协议都是广义上的抽象。

servlet容器协议:tomcat、jetty、weblogic、jboss等

分工高度明确的现代社会更是如此:比如我们的220v电压标准,所有在中国销售的家电都实现了这个协议,我家的电饭煲在你家也能用

作用:

  • 可以降低类之间的耦合性
  • 可以提高系统的稳定性
  • 可以减少并行开放引起的风险,在多人开发的时候,如果没有接口或者抽象类,那并行开发的效率可想而知
  • 可以提高代码的可读性和可维护性。

最佳实践:

  • 每个类都尽量地有接口或者抽象类,或者两者俱备。抽象是依赖倒置的基本要求
  • 变量的表面类型尽量是接口或者抽象类
  • 任何类都尽量不要从具体类派生,如果一个类从具体类派生,那么这个类和它依赖的非抽象父类就形成强耦合
  • 尽量不要覆写基类的方法。如果基类是个抽象类,而且这个方法已经实现了,子类尽量不要覆写。类间的依赖是抽象,覆写了抽象方法,会影响依赖的稳定性。
  • 结合里氏替换原则使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容