面向对象的设计模式之依赖倒置原则
Posted sy-liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的设计模式之依赖倒置原则相关的知识,希望对你有一定的参考价值。
依赖倒置原则(Dependency Inversion Priniciple,()DIP)(也叫依赖倒转原则)的定义:
高层模块不要应该依赖低层模块,他们都应该依赖抽象,抽象(接口和抽象类)不应该依赖于细节,细节(具体实现的类)应该依赖于抽象。意为要针对接口编程不要针对对象编程。
另一种描述为要针对接口编程,不要针对实现编程。
英文:Program to an interface,not an implementation。
依赖倒置原则的中心思想是面向接口编程
面向过程开发时,为了使代码可以复用,一般都会把常用代码写成许多函数的程序库,做新项目时,调用这些低层的函数即可,比如做大项目大多要访问数据库,所以我们把访问数据库的代码写成函数,每次做新项目时就去调用这些函数,这叫高层模块依赖于低层模块。游戏引擎的使用即是如此。
依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建起来的架构比以细节为基础搭建起来的架1构要稳定的多。
实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象的设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。
为什么依赖了抽象的接口或抽象类就不怕更改呢?这就是里氏替换原则要解决的问题。
类之间的耦合分类:
零耦合关系
具体耦合关系
抽象耦合关系
依赖倒转原则要求要求客户端依赖于抽象耦合,以抽象方式耦合是依赖倒转原则的关键。
以上是关于面向对象的设计模式之依赖倒置原则的主要内容,如果未能解决你的问题,请参考以下文章