zoukankan      html  css  js  c++  java
  • 3、面向对象的设计模式之依赖倒置原则

    依赖倒置原则(Dependency Inversion Priniciple,()DIP)(也叫依赖倒转原则)的定义:

     高层模块不要应该依赖低层模块,他们都应该依赖抽象,抽象(接口和抽象类)不应该依赖于细节,细节(具体实现的类)应该依赖于抽象。意为要针对接口编程不要针对对象编程。

      另一种描述为要针对接口编程,不要针对实现编程

      英文:Program to an interface,not an implementation。

    依赖倒置原则的中心思想是面向接口编程

    面向过程开发时,为了使代码可以复用,一般都会把常用代码写成许多函数的程序库,做新项目时,调用这些低层的函数即可,比如做大项目大多要访问数据库,所以我们把访问数据库的代码写成函数,每次做新项目时就去调用这些函数,这叫高层模块依赖于低层模块。游戏引擎的使用即是如此。

    依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建起来的架构比以细节为基础搭建起来的架1构要稳定的多。

    实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象的设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。

    为什么依赖了抽象的接口或抽象类就不怕更改呢?这就是里氏替换原则要解决的问题。

    类之间的耦合分类:

      零耦合关系

      具体耦合关系

      抽象耦合关系

    依赖倒转原则要求要求客户端依赖于抽象耦合,以抽象方式耦合是依赖倒转原则的关键。

      

    • 添加到短语集
       
      • 没有此单词集: -> ...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集: -> ...
         
      • 创建新的单词集...
    • 拷贝
  • 相关阅读:
    IDEA常用快捷键
    mybatis动态sql总结
    端口被占用的问题解决 Web server failed to start. Port ×× was already in use
    java常见的面试题(二)
    java常见的面试题(一)
    Zookeeper学习总结
    Oracle 创建表空间及用户授权、dmp数据导入、表空间、用户删除
    Navicat远程连接服务器mysql
    HashMap的实现原理?如何保证HashMap线程安全?
    ArrayList和LinkedList内部是怎么实现的?他们之间的区别和优缺点?
  • 原文地址:https://www.cnblogs.com/sy-liu/p/12905488.html
Copyright © 2011-2022 走看看