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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java面向對象設計原則有哪些

Java面向對象設計原則有哪些

更新時間:2020-08-31 09:21:26 來源:動力節點 瀏覽1268次


Java面向對象設計原則有哪些?這是學習Java的基礎知識,小編就來給大家進行詳細介紹。


Java面向對象設計原則


面向對象設計原則是OOPS(Object-Oriented Programming System,面向對象的程序設計系統)編程的核心,但大多數Java程序員追逐像Singleton、Decorator、Observer這樣的設計模式,而不重視面向對象的分析和設計。甚至還有經驗豐富的Java程序員沒有聽說過OOPS和SOLID設計原則,他們根本不知道設計原則的好處,也不知道如何依照這些原則來進行編程。


眾所周知,Java編程最基本的原則就是要追求高內聚和低耦合的解決方案和代碼模塊設計。查看Apache和Sun的開放源代碼能幫助你發現其他Java設計原則在這些代碼中的實際運用。


原則1:DRY(Don't repeat yourself)


即不要寫重復的代碼,而是用“abstraction”類來抽象公有的東西。如果你需要多次用到一個硬編碼值,那么可以設為公共常量;如果你要在兩個以上的地方使用一個代碼塊,那么可以將它設為一個獨立的方法。SOLID設計原則的優點是易于維護,但要注意,不要濫用,duplicate 不是針對代碼,而是針對功能。這意味著,即使用公共代碼來驗證OrderID和SSN,二者也不會是相同的。使用公共代碼來實現兩個不同的功能,其實就是近似地把這兩個功能永遠捆綁到了一起,如果OrderID改變了其格式,SSN驗證代碼也會中斷。因此要慎用這種組合,不要隨意捆綁類似但不相關的功能。


原則2:封裝變化


在軟件領域中唯一不變的就是“Change”,因此封裝你認為或猜測未來將發生變化的代碼。OOPS設計模式的優點在于易于測試和維護封裝的代碼。如果你使用Java編碼,可以默認私有化變量和方法,并逐步增加訪問權限,比如從private到protected和not public。有幾種Java設計模式也使用封裝,比如Factory設計模式是封裝“對象創建”,其靈活性使得之后引進新代碼不會對現有的代碼造成影響。


原則3:開閉原則


即對擴展開放,對修改關閉。這是另一種非常棒的設計原則,可以防止其他人更改已經測試好的代碼。理論上,可以在不修改原有的模塊的基礎上,擴展功能。這也是開閉原則的宗旨。


原則4:單一職責原則


類被修改的幾率很大,因此應該專注于單一的功能。如果你把多個功能放在同一個類中,功能之間就形成了關聯,改變其中一個功能,有可能中止另一個功能,這時就需要新一輪的測試來避免可能出現的問題。


原則5:依賴注入或倒置原則


這個設計原則的亮點在于任何被DI框架注入的類很容易用mock對象進行測試和維護,因為對象創建代碼集中在框架中,客戶端代碼也不混亂。有很多方式可以實現依賴倒置,比如像AspectJ等的AOP(Aspect Oriented programming)框架使用的字節碼技術,或Spring框架使用的代理等。


原則6:優先利用組合而非繼承


如果可能的話,優先利用組合而不是繼承。一些人可能會質疑,但我發現,組合比繼承靈活得多。組合允許在運行期間通過設置類的屬性來改變類的行為,也可以通過使用接口來組合一個類,它提供了更高的靈活性,并可以隨時實現。


原則7:里氏代換原則(LSP)


根據該原則,子類必須能夠替換掉它們的基類,也就是說使用基類的方法或函數能夠順利地引用子類對象。LSP原則與單一職責原則和接口分離原則密切相關,如果一個類比子類具備更多功能,很有可能某些功能會失效,這就違反了LSP原則。為了遵循該設計原則,派生類或子類必須增強功能。


原則8:接口分離原則


采用多個與特定客戶類有關的接口比采用一個通用的涵蓋多個業務方法的接口要好。設計接口很棘手,因為一旦釋放接口,你就無法在不中斷執行的情況下改變它。在Java中,該原則的另一個優勢在于,在任何類使用接口之前,接口不利于實現所有的方法,所以單一的功能意味著更少的實現方法。


原則9:針對接口編程,而不是針對實現編程


該原則可以使代碼更加靈活,以便可以在任何接口實現中使用。因此,在Java中最好使用變量接口類型、方法返回類型、方法參數類型等。


原則10:委托原則


該原則最典型的例子是Java中的equals() 和 hashCode() 方法。為了平等地比較兩個對象,我們用類本身而不是客戶端類來做比較。這個設計原則的好處是沒有重復的代碼,而且很容易對其進行修改。


Java面向對象設計原則有哪些


總之,希望這些面向對象的設計原則能幫助你寫出更靈活更好的代碼。理論是第一步,更重要的是需要開發者在實踐中去運用和體會。官網中有更多的java技術文檔供大家在線學習,感興趣的小伙伴可以前往學習。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 韩国xxxx色视频在线观看 | 在线视频福利 | 美女一级毛片免费不卡视频 | 欧美黑人巨大xxxxxxxx | 五月天狠狠干 | 伊人不卡久久大香线蕉综合影院 | 久久99综合国产精品亚洲首页 | 久久国产精品高清一区二区三区 | 久久99热这里只有精品高清 | 欧美国产日韩在线观看 | 久草午夜| 亚洲精品欧洲一区二区三区 | 毛片在线不卡 | 欧美毛片一级的免费的 | 免费中文字幕在线国语 | 日本特黄特色aaa大片免费欧 | 中文字幕久热 | 中文国产成人精品久久水 | 久久一本一区二区三区 | 国产特级毛片aaaaaaa高清 | 国产精品免费大片一区二区 | 日本又黄又爽又色的免费视频 | 五月婷婷开心综合 | 国产成人99精品免费视频麻豆 | 国产成人a∨麻豆精品 | 日本欧美韩国专区 | 欧美视频日韩专区午夜 | 狠狠干狠狠色 | 色婷婷综合久久久久中文 | 久久国产精品一国产精品金尊 | 日韩免费看 | 亚洲国产一区视频 | 久久精品这里热有精品2015 | 日本黄大片影院一区二区 | 亚洲精品乱码久久久久久 | 蜜桃综合网 | 8848hh四虎免费| 老司机成人午夜精品福利视频 | 精品国产第一国产综合精品 | 久久影视在线观看 | 午夜撸|