幾種常用的設(shè)計模式介紹.pdf

幾種常用的設(shè)計模式介紹.pdf

ID:52441122

大小:278.84 KB

頁數(shù):21頁

時間:2020-03-27

幾種常用的設(shè)計模式介紹.pdf_第1頁
幾種常用的設(shè)計模式介紹.pdf_第2頁
幾種常用的設(shè)計模式介紹.pdf_第3頁
幾種常用的設(shè)計模式介紹.pdf_第4頁
幾種常用的設(shè)計模式介紹.pdf_第5頁
資源描述:

《幾種常用的設(shè)計模式介紹.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、幾種常用的設(shè)計模式介紹1.設(shè)計模式的起源最早提出“設(shè)計模式”概念的是建筑設(shè)計大師亞力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投計模式的發(fā)現(xiàn),因為它已經(jīng)存在了千百年之久,而現(xiàn)代才被通過大量的研究而被發(fā)現(xiàn)。在《建筑的永恒之道》里這樣描述:模式是一條由三個部分組成的通用規(guī)則:它表示了一個特定環(huán)境、一類問題和一個解決方案之間的關(guān)系。每一個模式描述了一個不斷重復發(fā)生的問題,以及該問題解決方案的核心設(shè)計。在他的另一本書《建筑模式語言》中提到了現(xiàn)在已經(jīng)定義了253種模式。比如:說明城市主要的結(jié)構(gòu):亞文化區(qū)的鑲嵌、分散的工作點、

2、城市的魅力、地方交通區(qū)住宅團組:戶型混合、公共性的程度、住宅團組、聯(lián)排式住宅、丘狀住宅、老人天地室內(nèi)環(huán)境和室外環(huán)境、陰和陽總是一氣呵成針對住宅:夫妻的領(lǐng)域、兒童的領(lǐng)域、朝東的臥室、農(nóng)家的廚房、私家的沿街露臺、個人居室、起居空間的序列、多床臥室、浴室、大儲藏室針對辦公室、車間和公共建筑物:靈活辦公空間、共同進餐、共同小組、賓至如歸、等候場所、小會議室、半私密辦公室盡管亞力山大的著作是針對建筑領(lǐng)域的,但他的觀點實際上適用于所有的工程設(shè)計領(lǐng)域,其中也包括軟件設(shè)計領(lǐng)域?!败浖O(shè)計模式”,這個術(shù)語是在1990年代由ErichGamma等人從建筑設(shè)計

3、領(lǐng)域引入到計算機科學中來的。目前主要有23種。2.軟件設(shè)計模式的分類2.1.創(chuàng)建型創(chuàng)建對象時,不再由我們直接實例化對象;而是根據(jù)特定場景,由程序來確定創(chuàng)建對象的方式,從而保證更大的性能、更好的架構(gòu)優(yōu)勢。創(chuàng)建型模式主要有簡單工廠模式(并不是23種設(shè)計模式之一)、工廠方法、抽象工廠模式、單例模式、生成器模式和原型模式。2.2.結(jié)構(gòu)型用于幫助將多個對象組織成更大的結(jié)構(gòu)。結(jié)構(gòu)型模式主要有適配器模式、橋接模式、組合器模式、裝飾器模式、門面模式、亨元模式和代理模式。2.3.行為型用于幫助系統(tǒng)間各對象的通信,以及如何控制復雜系統(tǒng)中流程。行為型模式主要有

4、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態(tài)模式、策略模式、模板模式和訪問者模式。第1頁,共21頁3.常見設(shè)計模式介紹3.1.單例模式(singleton)有些時候,允許自由創(chuàng)建某個類的實例沒有意義,還可能造成系統(tǒng)性能下降。如果一個類始終只能創(chuàng)建一個實例,則這個類被稱為單例類,這種模式就被稱為單例模式。publicclassSingleton{publicstaticvoidmain(String[]args){//創(chuàng)建Singleton對象不能通過構(gòu)造器,只能通過getInstance方法Singleton

5、s1=Singleton.getInstance();Singletons2=Singleton.getInstance();//將輸出trueSystem.out.println(s1==s2);}//使用一個變量來緩存曾經(jīng)創(chuàng)建的實例privatestaticSingletoninstance;//將構(gòu)造器使用private修飾,隱藏該構(gòu)造器privateSingleton(){System.out.println("Singleton被構(gòu)造!");}//提供一個靜態(tài)方法,用于返回Singleton實例//該方法可以加入自定義的控制,保

6、證只產(chǎn)生一個Singleton對象publicstaticSingletongetInstance(){//如果instance為null,表明還不曾創(chuàng)建Singleton對象//如果instance不為null,則表明已經(jīng)創(chuàng)建了Singleton對象,將不會執(zhí)行該方法if(instance==null){//創(chuàng)建一個Singleton對象,并將其緩存起來instance=newSingleton();}returninstance;}}單例模式主要有如下兩個優(yōu)勢:1)減少創(chuàng)建Java實例所帶來的系統(tǒng)開銷2)便于系統(tǒng)跟蹤單個Java實例的

7、生命周期、實例狀態(tài)等。第2頁,共21頁3.2.簡單工廠(StaticFactoryMethod)簡單工廠模式是由一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現(xiàn)。A實例調(diào)用B實例的方法,稱為A依賴于B。如果使用new關(guān)鍵字來創(chuàng)建一個B實例(硬編碼耦合),然后調(diào)用B實例的方法。一旦系統(tǒng)需要重構(gòu):需要使用C類來代替B類時,程序不得不改寫A類代碼。而用工廠模式則不需要關(guān)心B對象的實現(xiàn)、創(chuàng)建過程。對象接口客戶端工廠對象Output,接口publicinterfaceOu

8、tput{//接口里定義的屬性只能是常量intMAX_CACHE_LINE=50;//接口里定義的只能是public的抽象實例方法voidout();voidgetData(Stringmsg

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。