关闭

设计模式<依赖倒置>

标签: 设计模式
107人阅读 评论(0) 收藏 举报
分类:

依赖

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41773次
    • 积分:652
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    最新评论