https://blog.csdn.net/zhengzhb/article/details/7187278
http://www.reibang.com/p/8dafef6e2128
https://blog.csdn.net/zhengzhb/article/details/7187278
java對象的各種關(guān)系
樓主的經(jīng)典語錄“總結(jié)著總結(jié)著就是高手了康谆,看著看著就是菜鳥了”嫉到。真所謂學而不思則惘。
https://blog.csdn.net/self_study/article/details/51234377
符合設計原則:多用合成/聚合孽锥、少用繼承细层,從而減少類之間的耦合
適配器模式還經(jīng)常用于處理不兼容類型的統(tǒng)一輸出問題。例如ListView的輸入有很多種類型盛撑,但輸出都是View捧搞,適配器就可以做到這一點狮荔。
https://blog.csdn.net/zhengzhb/article/details/7278174
子類可以擴展父類的功能轴合,但不能改變父類原有的功能创坞。
定義:不要存在多于一個導致類變更的原因碗短。通俗的說偎谁,即一個類只負責一項職責纲堵。
問題由來:類T負責兩個不同的職責:職責P1,職責P2铐望。當由于職責P1需求發(fā)生改變而需要修改類T時,有可能會導致原本運行正常的職責P2功能發(fā)生故障茂附。
解決方案:遵循單一職責原則。分別建立兩個類T1乒验、T2蒂阱,使T1完成職責P1功能,T2完成職責P2功能鳄厌。這樣,當修改類T1時了嚎,不會使職責P2發(fā)生故障風險响委;同理,當修改T2時夹囚,也不會使職責P1發(fā)生故障風險。
說到單一職責原則荸哟,很多人都會不屑一顧。因為它太簡單了舵抹。稍有經(jīng)驗的程序員即使從來沒有讀過設計模式劣砍、從來沒有聽說過單一職責原則,在設計軟件時也會自覺的遵守這一重要原則香嗓,因為這是常識。在軟件編程中靠娱,誰也不希望因為修改了一個功能導致其他的功能發(fā)生故障掠兄。而避免出現(xiàn)這一問題的方法便是遵循單一職責原則。雖然單一職責原則如此簡單迅诬,并且被認為是常識双抽,但是即便是經(jīng)驗豐富的程序員寫出的程序,也會有違背這一原則的代碼存在铐维。為什么會出現(xiàn)這種現(xiàn)象呢慎菲?因為有職責擴散。所謂職責擴散露该,就是因為某種原因,職責P被分化為粒度更細的職責P1和P2解幼。
————————————————
https://blog.csdn.net/zhengzhb/article/details/7281833
里氏替換原則通俗的來講就是:子類可以擴展父類的功能,但不能改變父類原有的功能撵摆。它包含以下4層含義:
子類可以實現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法暑中。
子類中可以增加自己特有的方法。
當子類的方法重載父類的方法時稻轨,方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松。
當子類的方法實現(xiàn)父類的抽象方法時殴俱,方法的后置條件(即方法的返回值)要比父類更嚴格。
————————————————
版權(quán)聲明:本文為CSDN博主「國韭一五七三」的原創(chuàng)文章粱挡,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議俄精,轉(zhuǎn)載請附上原文出處鏈接及本聲明竖慧。
原文鏈接:https://blog.csdn.net/zhengzhb/article/details/7281833
依賴倒置原則的核心就是要我們面向接口編程圾旨,理解了面向接口編程魏蔗,也就理解了依賴倒置。
面向過程的開發(fā)莺治,上層調(diào)用下層,上層依賴于下層床佳,當下層劇烈變動時上層也要跟著變動榄审,這就會導致模塊的復用性降低而且大大提高了開發(fā)的成本。
面向?qū)ο?/a>的開發(fā)很好的解決了這個問題浪感,一般情況下抽象的變化概率很小饼问,讓用戶程序依賴于抽象,實現(xiàn)的細節(jié)也依賴于抽象匆瓜。即使實現(xiàn)細節(jié)不斷變動未蝌,只要抽象不變茧妒,客戶程序就不需要變化。這大大降低了客戶程序與實現(xiàn)細節(jié)的耦合度桐筏。
五
11111111111
對于接口大小的把握,有那度梅忌。需要經(jīng)驗做支持牧氮。個人覺得拿不準的情況下,做小比做大好點丹莲。因為后期做加法比做減法容易。