设计原则——依赖倒置原则

2019-08-23  本文已影响0人  写一本2000000的书

定义:
1.高层模块不应该依赖低层模块,二者都应该依赖其抽象;
2.抽象不应该依赖细节;
3.细节应该依赖抽象。

class Driver {

    @Override
    public void drive(Benz benz) {
        // TODO Auto-generated method stub
        benz.run();
    }
}
class Benz {
    public void run() {
        System.out.println("奔驰车运动。。。。");
    }
}

class BMW {
    public void run() {
        System.out.println("宝马车车运动。。。。");
    }
}

Driver driver = new Driver();
Benz benz = new Benz();
driver.drive(benz);

因为Driver 中没有开宝马的方法,与实际生活不符,修改

interface IDriver {
    public void drive(ICar car);
}

interface ICar {
    public void run();
}


class Benz implements ICar {
    public void run() {
        System.out.println("奔驰车运动。。。。");
    }
}

class BMW implements ICar {
    public void run() {
        System.out.println("宝马车车运动。。。。");
    }
}

class Driver implements IDriver {

    @Override
    public void drive(ICar car) {
        // TODO Auto-generated method stub
        car.run();
    }
}

IDriver zhangSan = new Driver();
        ICar benz = new Benz();
        ICar bmw = new BMW();
        zhangSan.drive(benz);
        zhangSan.drive(bmw);
        // 既可以开Benz,也可以开BMW
上一篇 下一篇

猜你喜欢

热点阅读