设计模式<依赖倒置>

依赖

  • 什么是依赖,如果一个类中使用到了这样的代码 ,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
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wakewakewake/article/details/51548651
文章标签: 设计模式
个人分类: 设计模式
想对作者说点什么? 我来说一句

超越设计模式 软件开发

2011年06月08日 256KB 下载

没有更多推荐了,返回首页

不良信息举报

设计模式<依赖倒置>

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭