天天看點

設計模式----(依賴倒置原則)第二部分

依賴是可以傳遞的,隻要做到抽象依賴即使是多層依賴傳遞也都是OK的

對象的依賴關系有三種防水:

  • 構造函數傳遞依賴對象

在類中通過構造函數聲明依賴對象,通過這種構造函數注入的方法将第一部分中提到的IDriver和Driver進行修改

public interface IDriver{
    public void drive();
}
public class Driver implements IDriver{
    private ICac car;
    public Driver(ICar car){
        this.car = ncar;
    }
    public void drive(){
        this.car.run();
    } 
}
           
  • setter方法傳遞依賴對象

在抽象中設定setter方法聲明依賴關系,按照setter注入修改上述兩個程式

public interface IDriver{
    public void setCar(ICar car);
    public void drive();
}
public class Driver implements IDriver{
    private ICar car;
    public void setCar(ICar car){
        this.car = ncar;
    }
    public void drive(){
        this.car.run();
    }
}
           
  • 接口聲明依賴對象

依賴倒置的本質:通過抽象(接口或者抽象類)使得各個類或者子產品實作彼此獨立,互不影響實作低耦合度

  1. 每個類及你選哪個都有接口或者抽象類,或者抽象類和接口都具備(基本要求)
  2. 變量的表面類型盡量是接口或者抽象類
  3. 任何類都不應該從具體類派生
  4. 盡量不覆寫基類方法
  5. 結合裡氏替換原則

由于項目中很難展現出依賴倒置原則抓住原則的核心“面向接口程式設計”即可

繼續閱讀