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

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

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

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

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

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

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

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

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

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

    类之间的耦合分类:

      零耦合关系

      具体耦合关系

      抽象耦合关系

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

      

    • 添加到短语集
       
      • 没有此单词集: -> ...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集: -> ...
         
      • 创建新的单词集...
    • 拷贝
  • 相关阅读:
    boost::asio在VS2008下的编译错误
    Java集合框架——接口
    ACM POJ 3981 字符串替换(简单题)
    ACM HDU 1042 N!(高精度计算阶乘)
    OneTwoThree (Uva)
    ACM POJ 3979 分数加减法(水题)
    ACM HDU 4004 The Frog's Games(2011ACM大连赛区第四题)
    Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
    ACM HDU 4002 Find the maximum(2011年大连赛区网络赛第二题)
    ACM HDU 4001 To Miss Our Children Time (2011ACM大连赛区网络赛)
  • 原文地址:https://www.cnblogs.com/sy-liu/p/12905488.html
Copyright © 2011-2022 走看看