大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 應(yīng)該知道的面向?qū)ο笤O(shè)計原則

應(yīng)該知道的面向?qū)ο笤O(shè)計原則

更新時間:2022-04-18 09:30:44 來源:動力節(jié)點 瀏覽946次

盡管學習任何設(shè)計原則或模式的最佳方法是通過一個真實的示例并了解違反該設(shè)計原則的后果,但本文的主題是為沒有接觸過它的 Java 程序員介紹面向?qū)ο蟮脑O(shè)計原則或者在學習階段。

1. DRY

我們的第一個面向?qū)ο蟮脑O(shè)計原則是 DRY,顧名思義,DRY(不要重復(fù)自己)的意思是不要編寫重復(fù)的代碼,而是使用Abstraction將常見的東西抽象在一個地方。如果您在兩個以上的地方有一段代碼,請考慮將其設(shè)為單獨的方法,或者如果您多次使用硬編碼值,請將它們設(shè)為 public final constant。

這種面向?qū)ο笤O(shè)計原則的好處在于維護。重要的是不要濫用它,重復(fù)不是為了代碼,而是為了功能。這意味著如果您使用標準代碼來驗證OrderID和SSN,這并不意味著它們是相同的,或者它們將來會保持相同。

通過為兩個不同的功能或事物使用標準代碼,您可以將它們永遠緊密地結(jié)合在一起,并且當您的 OrderId 更改其格式時,您的 SSN 驗證代碼將中斷。

2. 封裝變化

軟件領(lǐng)域只有一件事是不變的,那就是“改變”,所以封裝你期望或懷疑在未來改變的代碼。這種 OOP 設(shè)計原則的好處是易于測試和維護適當?shù)姆庋b代碼。

如果你是在 Java 中編碼,那么遵循將變量和方法默認設(shè)為私有并逐步增加訪問權(quán)限的原則,例如從私有到受保護而不是公開。

Java中的一些設(shè)計模式使用了封裝,工廠設(shè)計模式 是封裝的一個示例,它封裝了對象創(chuàng)建代碼,并為以后引入新產(chǎn)品提供了靈活性,而不會影響現(xiàn)有代碼。

順便說一句,如果您有興趣了解有關(guān) Java 和面向?qū)ο缶幊?/span>中的設(shè)計模式的更多信息,那么您必須查看此 設(shè)計模式庫 課程 Pluralsight。它是關(guān)于如何在現(xiàn)實世界中使用它們的設(shè)計模式和建議的最佳集合之一。

3. 開放封閉設(shè)計原則

類、方法或函數(shù)應(yīng)該對擴展開放(新功能),對修改關(guān)閉。這是另一個漂亮的 SOLID 設(shè)計原則,它可以防止有人更改已經(jīng)嘗試和測試過的代碼。

理想情況下,如果您只是添加新功能,那么您的代碼應(yīng)該經(jīng)過測試,這就是 開放封閉設(shè)計原則的目標。順便說一句,開閉原則是 SOLID 首字母縮寫詞中的“O”。

4.單一職責原則(SRP)

Single Responsibility Principle 是另一個 SOLID 設(shè)計原則,在 SOLID 首字母縮寫詞上代表“S”。根據(jù) SRP,更改類的原因不應(yīng)該超過一個,或者類應(yīng)該始終處理單一功能。

如果你在 Java 中的一個 Class 中放置多個功能,它會引入 兩個功能之間的耦合 ,即使你更改一個特性,也有可能破壞耦合功能,這需要另一輪測試以避免對生產(chǎn)造成任何意外環(huán)境。

5.依賴注入或倒置原理

不要要求依賴;它將由框架提供給您。這在Spring 框架中已經(jīng)很好地實現(xiàn)了 ,這種設(shè)計原則的美妙之處在于,任何由 DI 框架注入的類都易于使用模擬對象進行測試,并且維護起來更舒適,因為對象創(chuàng)建代碼集中在框架中。并且客戶端代碼沒有亂七八糟。

有多種實現(xiàn)依賴注入的方法,例如使用字節(jié)碼檢測,一些 AOP(面向方面??的編程)框架,如 AspectJ,或者使用代理,就像在 Spring 中使用的那樣。

6. 偏好組合勝于繼承

如果可能的話,總是傾向于組合而不是繼承。你們中的一些人可能會爭論這一點,但我發(fā)現(xiàn) Composition 比Inheritance靈活得多。

組合允許通過在運行時設(shè)置屬性來改變類在運行時的行為,并且通過使用接口組合一個類,我們使用多態(tài)性,它提供了隨時替換為更好實現(xiàn)的靈活性。

7. 里氏替換原則(LSP)

根據(jù)Liskov 替換原則,子類型必須可替換父類型,即使用超類類型的方法或函數(shù)必須能夠與子類的對象毫無問題地工作” 。LSP 與單一職責原則和接口隔離原則

密切相關(guān). 如果一個類有更多的功能,那么子類可能不支持某些功能并且確實違反了 LSP。

8.接口隔離原則(ISP)

接口隔離原則指出,如果客戶端不使用接口,則不應(yīng)實現(xiàn)該接口。這主要發(fā)生在一個接口包含多個功能時,而客戶端只需要一個功能而不需要其他功能。

界面設(shè)計是一項棘手的工作,因為一旦發(fā)布了界面,就無法在不破壞所有實現(xiàn)的情況下對其進行更改。

Java中這種設(shè)計原則的另一個好處是,接口的缺點是在任何類可以使用它之前實現(xiàn)所有方法,因此具有單一功能意味著實現(xiàn)的方法更少。

9. 接口編程而不是實現(xiàn)

始終為接口而不是應(yīng)用程序編程;這將導(dǎo)致靈活的代碼可以與接口的任何新實現(xiàn)一起使用。

因此,在Java變量、方法的返回類型或方法的參數(shù)類型使用接口類型。

10. 委托原則

不要自己做所有事情,將其委托給相應(yīng)的班級。委托設(shè)計原則的經(jīng)典示例是Java 中的 equals() 和 hashCode() 方法。為了比較兩個對象是否相等,我們要求類本身進行比較,而不是讓Client類進行檢查。

這種設(shè)計原則的主要好處是沒有重復(fù)代碼并且很容易修改行為。事件委托是這個原則的另一個例子,其中一個事件被委托給處理程序進行處理。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 五十路一区二区三区视频 | 在线中文字幕亚洲 | 国产羞羞羞视频在线观看 | 国产精选在线播放 | 国产欧美国产精品第二区 | 国产成人综合亚洲动漫在线 | 五月婷婷伊人 | 色婷婷视频在线 | 夜色福利视频 | 91社区视频| 久久综合九色欧美综合狠狠 | 瑟瑟在线观看 | 超高清欧美videos360 | 久99久精品视频免费观看v | 在线亚洲播放 | 亚洲国产综合精品 | 欧美一级视频免费 | 国产一级毛片午夜 | 超高清欧美videos360 | 日韩欧美一级毛片精品6 | 日本一级淫片a免费播放 | 亚洲国产中文字幕在线观看 | 欧美成人手机在线视频 | 精品哟哟哟国产在线观看不卡 | 激情奇米 | 国产成人精品一区二三区在线观看 | 国产成人精品日本亚洲麻豆 | 久久精品视频观看 | 四虎影视成人永久在线播放 | 亚洲精品成人7777在线观看 | 日本人成18在线播放 | 日本欧洲95视频 | 日本成年一区久久综合 | 国内精品久久久久香蕉 | 五月婷综合网 | 成人私人影院在线观看网址 | 免费激情小视频 | 欧美激情第一区 | 99这里只有 | 美女视频黄的免费视频网页 | 日本一区视频在线 |