設計模式-依賴倒置

首先咱們來看一下定義:java

1.高層模塊不該該依賴低層模塊,二者都應該依賴其抽象函數

2.抽象不該該依賴細節code

3.細節應該依賴抽象對象

下面來看一下uml圖blog

public interface IDriver {

  //是司機就應該會駕駛汽車

   public void drive(ICar car);

}

 

public class Driver implements IDriver{

    //司機的主要職責就是駕駛汽車

    public void drive(ICar car){

        car.run();

    }

}

public interface ICar {

    //是汽車就應該能跑

    public void run();

}

public class Benz implements ICar{

    //汽車確定會跑

    public void run(){

        System.out.println("奔馳汽車開始運行...");

    }

}

public class BMW implements ICar{

    //寶馬車固然也能夠開動了

    public void run(){

        System.out.println("寶馬汽車開始運行...");

    }

}

public class Client {

    public static void main(String\[\] args) {

        IDriver zhangSan = new Driver();

        ICar benz = new Benz();

        //張三開奔馳車

        zhangSan.drive(benz);

    }

}

總結:接口

1.每一個類儘可能都有接口或抽象類,或者抽象類和接口二者都具有class

2.變量的表面類型儘可能是接口或者是抽象類變量

3.任何類都不該該從具體類派生構造函數

4.儘可能不要覆寫基類的方法方法

5.結合里氏替換原則使用

ps:

1.構造函數傳遞依賴對象

2.Setter方法傳遞依賴對象

3.接口聲明依賴對象

歡迎關注個人公衆號

相關文章
相關標籤/搜索