小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

設(shè)計模式筆記

 軟件團(tuán)隊頭目 2007-04-16

From Gossip@caterpillar

非關(guān)語言: 設(shè)計模式

設(shè)計模式並不神秘。。。程式設(shè)計是思維具體化的一種方式,是思考如何解決問題的過程,設(shè)計模式是在解決問題的過程中,一些良好思路的經(jīng)驗集成,最早講設(shè)計模式,人們總會提到 Gof  的著作,它最早將經(jīng)典的 23 種模式集合在一起說明,對後期學(xué)習(xí)程式設(shè)計,尤其是對從事物件導(dǎo)向程式設(shè)計的人們起了莫大的影響。

後來設(shè)計模式一詞被廣泛的應(yīng)用到各種經(jīng)驗集成,甚至還有反模式(AntiPattern),反模式教導(dǎo)您如何避開一些常犯且似是而非的程式設(shè)計思維。

這邊的話將整理一些設(shè)計模式學(xué)習(xí)心得,實作的部份是使用Java,因而您會看到一些與 Gof 模式不同的圖及實作方式,這是為了善用一些Java本身的特性,至於C++的實作方面,Gof 的書已經(jīng)給了不少的例子。

在一些模式的實作上,您會發(fā)現(xiàn)我用了介面(interface)來取代抽象類別(Abstract class),這與原先的Gof書中的範(fàn)例會不儘相同,這是因為在C++中沒有介面,一個完全沒有實作任何方法的抽象類別,根據(jù)當(dāng)時描述的主題特性,可以的話會將之換為介面,在語義上會較符合Java語言的特性,但是您要知道的是,介面與完全沒有實作任何方法的抽象類別在某些時候是可以互換的。

在這邊所看到的 UML 圖都是使用 Jude 繪製的,Jude 是一個純 Java 撰寫的 UML 工具程式,可運行與 Windows、Linux 等多個平臺,體積小,使用簡易。

Gof 模式
    以下的設(shè)計模式則是我個人從 Gof 學(xué)習(xí)中的個人體會與實作,並增加幾個導(dǎo)入或衍生的簡單模式。
  • Creational 模式
物件的產(chǎn)生需要消耗系統(tǒng)資源,所以如何有效率的產(chǎn)生、管理與操作物件,一直都是值得討論的課題, Creational 模式即與物件的建立相關(guān),在這個分類下的模式給出了一些指導(dǎo)原則及設(shè)計的方向。

  • Structural 模式
如何設(shè)計物件之間的靜態(tài)結(jié)構(gòu),如何完成物件之間的繼承、實現(xiàn)與依賴關(guān)係,這關(guān)乎著系統(tǒng)設(shè)計出來是否健壯(robust):像是易懂、易維護(hù)、易修改、耦合度低等等議題。Structural 模式正如其名,其分類下的模式給出了在不同場合下所適用的各種物件關(guān)係結(jié)構(gòu)。

  • Behavioral 模式
物件之間的合作行為構(gòu)成了程式最終的行為,物件之間若有設(shè)計良好的行為互動,不僅使得程式執(zhí)行時更有效率,更可以讓物件的職責(zé)更為清晰、整個程式的動態(tài)結(jié)構(gòu)(像是物件調(diào)度)更有彈性。

多執(zhí)行緒模式
    在很多應(yīng)用中都會使用多執(zhí)行緒,尤其是在Web應(yīng)用中,多執(zhí)行緒以 Gof 整理的模式為基礎(chǔ),考量多執(zhí)行緒環(huán)境中,如何組合這些基本模式來完成多執(zhí)行緒安全要求。


參考資料
    以下是以Java實作設(shè)計模式的介紹網(wǎng)站,從下面的連結(jié)開始,當(dāng)中您可以找到更多設(shè)計模式的資源。




    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多