免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
[轉(zhuǎn)] 必須知道的設(shè)計(jì)模式

] 必須知道的設(shè)計(jì)模式

本文將介紹以下內(nèi)容:

• 設(shè)計(jì)模式(Design & Pattern)

 

本文涉及以下技術(shù):

面向?qū)ο蟆⒃O(shè)計(jì)模式

 

引言

   設(shè)計(jì)模式是面向?qū)ο笏枷氲募蟪?,GOF在其經(jīng)典著作中總結(jié)了23種設(shè)計(jì)模式,又可分為:創(chuàng)建型、結(jié)構(gòu)型和行為型3個(gè)大類。對(duì)于軟件設(shè)計(jì)者來(lái)說(shuō),一般的過(guò)程就是在熟練掌握語(yǔ)言背景的基礎(chǔ)上,了解類庫(kù)的大致框架和常用的函數(shù)和接口等,然后多再在百般錘煉中,提高對(duì)軟件設(shè)計(jì)思想的認(rèn)識(shí)。

   軟件設(shè)計(jì)者要清楚自己的定位和方向,一味的沉溺于技術(shù)細(xì)節(jié)的思路是制約個(gè)人技術(shù)走向成熟的毒藥。因此,學(xué)習(xí)軟件設(shè)計(jì),了解軟件工程,是每個(gè)開發(fā)人員必備的一課。筆者在此不想詳細(xì)的描述各個(gè)設(shè)計(jì)模式的細(xì)節(jié),我想google和baidu上的資料已經(jīng)多如牛毛了。而且,爭(zhēng)取的學(xué)習(xí)方法也不是了解所有的設(shè)計(jì)模式就可以無(wú)敵于天下。我所強(qiáng)調(diào)的學(xué)習(xí)方法就是在熟練掌握基本要素的基礎(chǔ)上,了解大致的框架。這一條不僅是學(xué)習(xí)類庫(kù)的方法,對(duì)設(shè)計(jì)模式來(lái)說(shuō)是可行的。同時(shí),切記的是在平時(shí)的積累中,不斷的體會(huì)和實(shí)踐。因此,本文的目的就是將23種模式中,必須掌握的幾個(gè)最關(guān)鍵、最常用的設(shè)計(jì)模式,做以總結(jié)和簡(jiǎn)述。

1 Factory Pattern

    上榜理由:將程序中創(chuàng)建對(duì)象的操作,單獨(dú)出來(lái)處理,大大提高了系統(tǒng)擴(kuò)展的柔性,接口的抽象化處理給相互依賴的對(duì)象創(chuàng)建提供了最好的抽象模式。

    推薦熱貼:  .NET設(shè)計(jì)模式(3):抽象工廠模式(Abstract Factory)

                由淺入深學(xué)“工廠模式”(3)

                Switch語(yǔ)句,僵化的毒藥

2 Facade Pattern

   上榜理由:將表現(xiàn)層和邏輯層隔離,封裝底層的復(fù)雜處理,為用戶提供簡(jiǎn)單的接口,這樣的例子隨處可見。門面模式很多時(shí)候更是一種系統(tǒng)架構(gòu)的設(shè)計(jì),在我所做的項(xiàng)目中,就實(shí)現(xiàn)了門面模式的接口,為復(fù)雜系統(tǒng)的解耦提供了最好的解決方案。

    推薦熱貼:設(shè)計(jì)模式學(xué)習(xí)筆記(十一)——Facade外觀模式

                設(shè)計(jì)模式解析之——Facade模式(k_eckel轉(zhuǎn)自微軟高校博客K_eckel‘s mindview)

3 Command Pattern

 上榜理由:將請(qǐng)求封裝為對(duì)象,從而將命令的執(zhí)行和責(zé)任分開。通常在隊(duì)列中等待命令,這和現(xiàn)實(shí)多么的相似呀。如果你喜歡發(fā)號(hào)施令,請(qǐng)考慮你的ICommond吧。

 推薦熱貼:Command模式應(yīng)用實(shí)踐

              .NET設(shè)計(jì)模式(17):命令模式(Command Pattern)

4 Strategy Pattern

  上榜理由:策略模式,將易于變化的部分封裝為接口,通常Strategy 封裝一些運(yùn)算法則,使之能互換。Bruce Zhang在他的博客中提到策略模式其實(shí)是一種“面向接口”的編程方法,真是恰如其分。

 推薦熱貼:.Net中的設(shè)計(jì)模式——Strategy模式

                設(shè)計(jì)模式(22)-Strategy Pattern

5 Iterator Pattern

 上榜理由:相信任何的系統(tǒng)中,都會(huì)用到數(shù)組、集合、鏈表、隊(duì)列這樣的類型吧,那么你就不得不關(guān)心迭代模式的來(lái)龍去脈。在遍歷算法中,迭代模式提供了遍歷的順序訪問(wèn)容器,GOF給出的定義為:提供一種方法訪問(wèn)一個(gè)容器(container)對(duì)象中各個(gè)元素,而又不需暴露該對(duì)象的內(nèi)部細(xì)節(jié)。.NET中就是使用了迭代器來(lái)創(chuàng)建用于foreach的集合。

 推薦熱貼:迭代器模式(Iterator pattern)

                NET設(shè)計(jì)模式(18):迭代器模式(Iterator Pattern)

6 Adapter Pattern

 上榜理由:在原類型不做任何改變的情況下,擴(kuò)展了新的接口,靈活且多樣的適配一切舊俗。這種打破舊框框,適配新格局的思想,是面向?qū)ο蟮木?。以繼承方式實(shí)現(xiàn)的類的Adapter模式和以聚合方式實(shí)現(xiàn)的對(duì)象的Adapter模式,各有千秋,各取所長(zhǎng)??磥?lái),把它叫做包裝器一點(diǎn)也不為過(guò),

 推薦熱貼:《讓僵冷的翅膀飛起來(lái)》系列之二——從實(shí)例談Adapter模式

                C#設(shè)計(jì)模式(10)-Adapter Pattern

                .NET設(shè)計(jì)模式(8):適配器模式(Adapter Pattern)

7 Observer Pattern

 上榜理由:定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。觀察者和被觀察者的分開,為模塊劃分提供了清晰的界限。在.NET中使用委托和事件可以更好的實(shí)現(xiàn)觀察者模式,事件的注冊(cè)和撤銷不就對(duì)應(yīng)著觀察者對(duì)其對(duì)象的觀察嗎?

 推薦熱貼:.NET實(shí)用設(shè)計(jì)模式:觀察者模式(Observer)

                 Observer Pattern in AOP

                 .NET設(shè)計(jì)模式(19):觀察者模式(Observer Pattern)

8 Bridge Pattern

 上榜理由:把實(shí)現(xiàn)和邏輯分開,對(duì)于我們深刻理解面向?qū)ο蟮木酆蠌?fù)用的思想甚有助益。

 推薦熱貼:.NET設(shè)計(jì)模式(9):橋接模式(Bridge Pattern)

                 Bridge Strategy 和State的區(qū)別

                設(shè)計(jì)模式(16)-Bridge Pattern

9 Singleton Pattern

 上榜理由:改善全局變量和命名空間的沖突,可以說(shuō)是一種改良了的全局變量。這種一個(gè)類只有一個(gè)實(shí)例,且提供一個(gè)訪問(wèn)全局點(diǎn)的方式,更加靈活的保證了實(shí)例的創(chuàng)建和訪問(wèn)約束。.NET Frameeork已經(jīng)封裝了Singleton類,我們拿來(lái)即可。

 推薦熱貼:從C#的Singleton設(shè)計(jì)模式

                .NET設(shè)計(jì)模式(2):?jiǎn)渭J剑⊿ingleton Pattern)

 

總結(jié)

    仁者見仁。以上只是筆者一家之言,更重要的真知灼見皆來(lái)源于實(shí)踐,設(shè)計(jì)思想和模式的應(yīng)用也來(lái)源于不斷的學(xué)習(xí)和反復(fù),我也將一如既往。此文只是開端,未來(lái)才是不斷的探索。

建議

    1 不要拿著GOF的書,從頭看到尾,對(duì)我來(lái)說(shuō)那是圣經(jīng)也是字典;

    2 在軟件設(shè)計(jì)中體會(huì)設(shè)計(jì)模式,設(shè)計(jì)就是不斷的由需求生成的重構(gòu);

    3 結(jié)合.NET Framework框架來(lái)學(xué)習(xí)設(shè)計(jì)模式在.NET中的應(yīng)用,對(duì)我們這樣的菜鳥來(lái)說(shuō)是一舉兩得的事,即體味了設(shè)計(jì),又深諳了框架;

    4 把體會(huì)拿來(lái)共享。

致謝

    感謝GOF: Erich Gamma、Richard Helm、Ralph Johnson 和John Vlissides,他們是經(jīng)典;

    感謝Bruce Zhang、TerryLee、idior等的貢獻(xiàn)。他們是博客園的榜樣。

參考文獻(xiàn)

    James W. Cooper,《C#設(shè)計(jì)模式》

    劉藝,《Delphi設(shè)計(jì)模式》

    GOF,《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
大衛(wèi)的Design Patterns學(xué)習(xí)筆記 01:前言
C++設(shè)計(jì)模式
15分鐘入門23種設(shè)計(jì)模式:圖解,范例和對(duì)比
23 種設(shè)計(jì)模式的分類和功能
20 個(gè)設(shè)計(jì)模式和軟件設(shè)計(jì)面試問(wèn)題
24種設(shè)計(jì)模式及案例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服