加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

设计模式<依赖倒置>

发布时间:2020-12-14 02:13:11 所属栏目:百科 来源:网络整理
导读:依赖 什么是依赖,如果一个类中使用到了这样的代码 ,AutoDrive就依赖于Baoma。 AutoDrive 是高级模块,Baoma 是低级模块。 class AutoDrive { Baoma car= new Baoma(); public void turnLeft() { car.turnLeft(); } class Baoma { } 这样做的坏处是什么。类

依赖

  • 什么是依赖,如果一个类中使用到了这样的代码 ,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
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读