設(shè)計模式

設(shè)計模式,不需要你創(chuàng)新,只需要強大的復(fù)制能力?。?!復(fù)制能力的建立是在你對問題的深入洞察以及對經(jīng)驗的深刻理解之上的。

  1. 何謂模式?
    模式乃為解決某一類問題而設(shè)計的一套通用的解決方法。模式的出現(xiàn)也相當于是定義了一套標準,某類問題就直接按這套標準解決就行,而不用擔(dān)心千百種形式各異的解法。這在建筑方面或許不大利于創(chuàng)新,但在軟件工程界不知道為碼農(nóng)提供了多大的便利。

  2. 描述模式的四個步驟:
    1) 問題描述:描述該模式解決的問題是什么樣的;
    2) 應(yīng)用場合:在什么環(huán)境(這個環(huán)境是指什么?)下使用該模式;
    3) 設(shè)計方法:該模式是怎樣設(shè)計的;
    4) 優(yōu)缺點:該模式的優(yōu)缺點是什么。

  3. 設(shè)計模式的優(yōu)點:
    1) 節(jié)省時間,不用你自己想設(shè)計方案,套用一個就好;
    2) 方便溝通交流,只要懂設(shè)計模式,不管用什么語言,你都能輕松理解;
    3) 易于擴展、復(fù)用和維護(我在想設(shè)計模式是怎么做到的?);

  4. 面向?qū)ο蟮脑O(shè)計原則:
    1) 單一功能原則:每個類的功能盡可能的簡單,盡可能向高內(nèi)聚低耦合靠攏;
    2) 開閉原則:對修改封閉,對擴展開放;
    3) 里約代替原則:在使用基類對象的地方都可以使用子類對象代替,該原則是實現(xiàn)開閉原則的重要依據(jù);
    4) 控制反轉(zhuǎn)原則:在設(shè)計時,應(yīng)當針對抽象進行設(shè)計,而非針對具體實現(xiàn)進行設(shè)計。該原則是開閉原則的具體實現(xiàn)方式;
    5) 接口隔離原則:在設(shè)計時,應(yīng)當將一個大接口依據(jù)單一職責(zé)原則分解成多個小接口,使各個小接口所具有的方法內(nèi)聚性更高;
    6) 合成復(fù)用原則:將一個類的對象作為另一個類的屬性。在代碼重用的時候,如果使用繼承不能滿足里約代替原則,那么就盡可能使用合成復(fù)用;
    7) 迪米特法則:一個類應(yīng)當與其他類盡可能的減少聯(lián)系。有必要的話可以引進第三方類來作為聯(lián)系紐帶。

  5. 單例模式
    在某些場合下,對于一個類,我們只能允許它的一個實例存在,在這種情況下,我們就可以使用單例模式。單例模式有兩種設(shè)計方法,分別稱為餓漢式和懶漢式。
    1)餓漢式:其原理是在類中創(chuàng)建一個私有的靜態(tài)實例,同時提供一個返回靜態(tài)實例的公有靜態(tài)方法。在類加載的時候就會創(chuàng)建該類的實例,需要使用時直接調(diào)用公有方法即可。為什么叫餓漢式?可以這么理解:哎呀,我很餓啊,你趕緊給我拿吃的過來。所以就在類加載時就創(chuàng)建了。
    2)懶漢式:在類中先創(chuàng)建一個值為空、類型為該類類型、的私有靜態(tài)變量,但并不創(chuàng)建對象。與此同時,提供一個公有的靜態(tài)方法,該方法判斷靜態(tài)變量是否為空,為空則使用同步方法創(chuàng)建該類的一個實例,并返回靜態(tài)變量。為什么叫懶漢式?你現(xiàn)在反正不要,我懶得現(xiàn)在就給你,你什么時候要我再給你。哈哈?。?!
    這兩種模式最大的不同是一個在類加載時就創(chuàng)建了類的實例,一個在類加載后需要時才會創(chuàng)建。這兩種方法各有各的優(yōu)點。
    1)餓漢式優(yōu)點:空間換取時間,比較適合經(jīng)常使用的情況,因為在類加載時就創(chuàng)建了實例,不像懶漢式還需要先進行判斷實例是否創(chuàng)建。
    2)懶漢式優(yōu)點:時間換取空間,比較適合資源緊張,對象不怎么經(jīng)常使用的情況。

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

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

  • 設(shè)計模式匯總 一、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,094評論 1 15
  • 設(shè)計模式之六大原則(轉(zhuǎn)載) 關(guān)于設(shè)計模式的六大設(shè)計原則的資料網(wǎng)上很多...
    霄霄霄霄閱讀 949評論 0 1
  • 原文鏈接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤獨雜貨鋪閱讀 1,639評論 0 3
  • 一、設(shè)計模式的分類 總體來說設(shè)計模式分為三大類: 創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者...
    RamboLI閱讀 833評論 0 1
  • 之前老以為最難捱的日子已經(jīng)過夠了,但現(xiàn)在的日子是什么呢?暴雨時節(jié),聽聽歌,趴在筆記本電腦上,靠近喇叭處,竟有種立體...
    簡言之閱讀 265評論 0 1

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