日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

坚实原则:依赖倒置原则

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 坚实原则:依赖倒置原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

到目前為止,我們只研究了單一職責 , 打開/關閉 , liskov替換和接口隔離原則。
依賴倒置是我們要研究的最后一個原理之一。
該原則指出

答:高級模塊不應依賴于低級模塊。 兩者都應依賴抽象。
B.抽象不應依賴細節。 細節應取決于抽象。

讓我們開始一些違反該原理的代碼。
作為軟件團隊,我們需要實施一個項目。 目前,軟件團隊包括:

后端開發人員

package com.gkatzioura.solid.di;public class BackEndDeveloper {public void writeJava() {} }

還有一個前端開發人員

package com.gkatzioura.solid.di;public class FrontEndDeveloper {public void writeJavascript() {}}

我們的項目在整個開發過程中都使用。

package com.gkatzioura.solid.di;public class Project {private BackEndDeveloper backEndDeveloper = new BackEndDeveloper();private FrontEndDeveloper frontEndDeveloper = new FrontEndDeveloper();public void implement() {backEndDeveloper.writeJava();frontEndDeveloper.writeJavascript();}}

因此,我們可以看到Project類是一個高級模塊,它依賴于諸如BackEndDeveloper和FrontEndDeveloper之類的低級模塊。 實際上,我們違反了依賴倒置原則的第一部分。

同樣通過檢查Project.class的實現功能,我們認識到方法writeJava和writeJavascript是綁定到相應類的方法。 關于項目范圍,這些都是細節,因為在兩種情況下它們都是開發形式。 因此,違反了依賴倒置原則的第二部分。

為了解決這個問題,我們將實現一個稱為Developer接口的接口。

package com.gkatzioura.solid.di;public interface Developer {void develop(); }

因此,我們引入一個抽象。

BackEndDeveloper應該重構為

package com.gkatzioura.solid.di;public class BackEndDeveloper implements Developer {@Override public void develop() {writeJava();}private void writeJava() {}}

并且將FrontEndDeveloper重構為

package com.gkatzioura.solid.di;public class FrontEndDeveloper implements Developer {@Override public void develop() {writeJavascript();}public void writeJavascript() {}} [/sourecode]The next step in order to tackle the violation of the first part would be to refactor the Project class so that it will not depend on the FrontEndDeveloper and the BackendDeveloper class.package com.gkatzioura.solid.di;import java.util.List;public class Project {private List<Developer> developers;public Project(List<Developer> developers) {this.developers = developers;}public void implement() {developers.forEach(d->d.develop());}}

結果是Project類不依賴于較低級別的模塊,而是依賴于抽象。 低層模塊及其細節也取決于抽象。

您可以在github上找到源代碼。

另外,我還編寫了備忘單,其中包含一些扎實的原則。 在鏈接中注冊以接收它。

翻譯自: https://www.javacodegeeks.com/2018/02/solid-principles-dependency-inversion-principle.html

總結

以上是生活随笔為你收集整理的坚实原则:依赖倒置原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。