设计模式<依赖倒置>

原创 2016年05月31日 20:05:46

依赖

  • 什么是依赖,如果一个类中使用到了这样的代码 ,AutoDrive就依赖于Baoma。 AutoDrive 是高级模块,Baoma 是低级模块。
class AutoDrive{
    Baoma car=new Baoma();
    public void turnLeft()
         {
            car.turnLeft();
        }
class  Baoma{}
  • 这样做的坏处是什么。类与类直接依赖与细节,那么他们之间就有耦合。当需要把宝马替换成奥迪时。我们又需要改动AutoDrive 的代码。

什么是依赖倒置

  • 高层模块不应该依赖低层模块,两者都应该依赖于抽象。
  • 抽象不应该依赖于细节,细节依赖于抽象。

实现

创建抽象:

interface Icar{
    void turnLeft();
    void turnRIght();
    void GoStraight();
}
  • 高级模块 如何依赖于抽象:采用依赖注入。
class AutoDrive{
    private  Icar mCar=null;
    public void setCar( Icar car){
        mCar=car;
    }
        public void turnLeft()
         {
            mCar.turnLeft();
        }
}

class  Baoma implements Icar{
    @Override
    public void turnLeft() {
        // turn left
    }

    @Override
    public void turnRIght() {
        //turn right
    }

    @Override
    public void GoStraight() {
        // go straight
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式六大原则---依赖倒置原则(DIP)

定义    依赖倒置原则(Dependency Inversion Principle)     核心思想:依赖于抽象     具体体现:         体现一:高层模块不应该依赖低层模块。两个都应...
  • u010853701
  • u010853701
  • 2014年05月12日 15:34
  • 1742

设计模式学习之设计模式原则(二):依赖倒置原则和接口隔离原则

依赖倒置原则和接口隔离原则的记录。 依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象; 接口隔离原则:建立单一接口,不要建立臃肿庞大的接口;...
  • lightlater
  • lightlater
  • 2015年05月12日 13:30
  • 1690

依赖倒置原则详解--七大面向对象设计原则(3)

依赖倒置原则来源:          类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的...
  • fanyun_01
  • fanyun_01
  • 2016年07月15日 19:26
  • 1582

设计模式6大原则:依赖倒置原则

  • 2013年05月09日 13:48
  • 57KB
  • 下载

设计模式六大原则<二>依赖倒置原则

设计模式概述见: http://blog.csdn.net/chijiandi/article/details/78839305 依赖倒置原则的基本概念 高层模块不应该依赖底层模块,二者都...
  • chijiandi
  • chijiandi
  • 2018年01月16日 10:14
  • 16

(随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则

(随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则 : 让项目拥有变化的能力 定义 : 依赖倒置原则指定了一种特定的解耦形式,使得高层次模块不依赖于低层次模块的实现细节 关键点...
  • yitao_
  • yitao_
  • 2016年12月16日 18:57
  • 187

JAVA设计模式(二十五)——依赖倒置原则

1、依赖倒置原则         依赖倒置原则(Dependence Inversion Principle),简称DIP。首先来看看英文的定义吧,如下一长段: High level mo...
  • ljtyzhr
  • ljtyzhr
  • 2015年04月07日 11:12
  • 442

设计模式六大原则(3):依赖倒置原则

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A...
  • piaoxuan1987
  • piaoxuan1987
  • 2017年12月17日 16:30
  • 26

天天学设计模式6-依赖倒置原则和接口隔离原则

依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 我觉的这个定义写的不是很好,这个定义里面有个误区就是高层模块和底层模块,假设有个class...
  • qq_21856675
  • qq_21856675
  • 2015年09月22日 14:51
  • 222

设计模式六大原则之--依赖倒置原则(DIP)

1. 依赖倒置原则,(Dependence Inversion Principle, DIP ) 定义:High level modules should not depend upon low...
  • qq_34721308
  • qq_34721308
  • 2016年12月26日 14:07
  • 233
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式<依赖倒置>
举报原因:
原因补充:

(最多只允许输入30个字)