設(shè)計(jì)原則--理論

1、找出應(yīng)用中可能需要變化的部分,把它們獨(dú)立出來(lái),不要和那些不變的代碼混到一起。

--把會(huì)變化的部分取出并“封裝”起來(lái),好讓其他部分不會(huì)受到影響。代碼變化引起的不經(jīng)意后果變少,系統(tǒng)變得更有彈性。

2、針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。

--“針對(duì)接口編程”真正的意思是“針對(duì)超類(lèi)型(super type)編程”。這里所謂的“接口”有多個(gè)含義,接口是一個(gè)“概念”,也可以是一種java的interface構(gòu)造?!搬槍?duì)接口編程”關(guān)鍵是多態(tài)。利用多態(tài),程序可以針對(duì)超類(lèi)型編程,執(zhí)行時(shí)會(huì)根據(jù)實(shí)際情況執(zhí)行真正的行為,不會(huì)被綁死在超類(lèi)型的行為上?!搬槍?duì)超類(lèi)型編程”這句話(huà),可以更明確地說(shuō)成“變量的聲明類(lèi)型應(yīng)該是超類(lèi)型,通常是一個(gè)抽象類(lèi)或者是一個(gè)接口,如此,只要是具體實(shí)現(xiàn)此超類(lèi)型的類(lèi)所產(chǎn)生的對(duì)象,都可以指定給這個(gè)變量。這也意味著,聲明類(lèi)時(shí)不用理會(huì)以后執(zhí)行時(shí)的真正對(duì)象類(lèi)型!”

3、多用組合,少用繼承。

4、為了交互對(duì)象之間的松耦合設(shè)計(jì)而努力

5、類(lèi)應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。

6、要依賴(lài)抽象,不依賴(lài)具體類(lèi)。

7、最少知識(shí)原則:只與你的密友談話(huà)。

8、好萊塢原則:別調(diào)用我們,我們會(huì)調(diào)用你。

好萊塢原則給我們一種可以防止“依賴(lài)腐敗”的方法。當(dāng)高層組件依賴(lài)底層組件,而底層組件又依賴(lài)高層組件,而高層組件又依賴(lài)側(cè)邊組件,側(cè)邊組件又依賴(lài)底層組件時(shí),依賴(lài)腐敗就發(fā)生了。在這種情況下,沒(méi)有人會(huì)輕易的懂系統(tǒng)是怎么設(shè)計(jì)的。

在好萊塢原則下,我們?cè)试S底層組件將自己掛鉤到系統(tǒng)上,但是高層組件會(huì)決定什么時(shí)候和怎樣使用低層組件。換句話(huà)說(shuō)就是高層組件對(duì)待低層組件的方式就是“別調(diào)用我們,我們會(huì)調(diào)用你”。

9、一個(gè)類(lèi)應(yīng)該只有一個(gè)引起變化的原因。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 12,321評(píng)論 6 13
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,241評(píng)論 0 62
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,628評(píng)論 18 399
  • 輪播的實(shí)現(xiàn)原理是怎樣的?如果讓你來(lái)實(shí)現(xiàn),你會(huì)抽象出哪些函數(shù)(or接口)供使用?(比如 play()) 原理:就是將...
    邵志遠(yuǎn)閱讀 242評(píng)論 0 0
  • 有種習(xí)慣“單曲循環(huán)” 想念一個(gè)人的時(shí)候,我想書(shū)寫(xiě)出來(lái)的文字讓人備感幸福。 當(dāng)你不再完美,不再專(zhuān)一,一切就不一樣了,...
    花田一閱讀 359評(píng)論 0 0

友情鏈接更多精彩內(nèi)容