當前位置:吉日网官网 - 錢幣收藏 - 裏希特替代原理和依賴反轉原理有什麽區別?

裏希特替代原理和依賴反轉原理有什麽區別?

差異:

定義不同:裏希特替代原理是壹個關於子類和父類的原理;依賴倒置原則是壹個關於抽象和細節的原則。

適用範圍不同:依賴倒置原則的適用範圍比裏克特替代原則更廣。

涉及的對象關系不同:李希特替代原理中的子類有各自的獨立性;依賴倒置原則中的細節依賴於抽象。

衍生知識點:

壹、李希特替代原則

定義1:如果對於T1類型的每個對象o1都有壹個T2類型的對象o2,使得當所有對象o1被o2替換時,T1定義的所有程序P的行為不變,那麽T2類型是T1類型的子類型。

定義2:對基類的所有引用必須能夠透明地使用其子類的對象。

壹般來說,子類可以擴展父類的功能,但不能改變父類原有的功能。它是OCP的延伸。它包含以下四層含義:

1.?子類可以抽象父類,但是不能覆蓋父類的非抽象方法。

2.?子類可以添加自己獨特的方法。

3.?當子類的方法重載父類的方法時,方法的前提條件(即方法的形參)比父類的方法的輸入寬松。

4.?子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)比父類的後置條件更嚴格。

第二,依賴倒置原則

定義:高層模塊不應該依賴底層模塊,但兩者都應該依賴它們的抽象;抽象不應該依賴於細節;細節要靠抽象。

問題的由來:A類直接依賴b類,如果要把A類變成依賴C類,必須通過修改A類的代碼來實現..在這種場景下,A類壹般是高層模塊,負責復雜的業務邏輯;b類和c類是底層模塊,負責基本的原子操作;如果修改A類,會給程序帶來不必要的風險。

解決方法:將類A改為依賴接口I,類B和類C分別實現接口I,類A通過接口I間接聯系類B和類C,這樣會大大降低修改類A的概率..

核心思想:面向接口編程。包含以下三點:

1.?低級模塊應該盡量有抽象類或接口,或者兩者都有。

2.?變量的聲明類型應該盡可能抽象。

3.?繼承時遵循裏氏震級替代原則

  • 上一篇:遺憾意難平的文案短句
  • 下一篇:錢幣鑒賞中經常提到的「包漿」是什麽意思?
  • copyright 2024吉日网官网