打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
設計模式筆記

From Gossip@caterpillar

非關語言: 設計模式

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

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

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

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

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

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

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

  • Behavioral 模式
物件之間的合作行為構成了程式最終的行為,物件之間若有設計良好的行為互動,不僅使得程式執行時更有效率,更可以讓物件的職責更為清晰、整個程式的動態結構(像是物件調度)更有彈性。

多執行緒模式
    在很多應用中都會使用多執行緒,尤其是在Web應用中,多執行緒以 Gof 整理的模式為基礎,考量多執行緒環境中,如何組合這些基本模式來完成多執行緒安全要求。


參考資料
    以下是以Java實作設計模式的介紹網站,從下面的連結開始,當中您可以找到更多設計模式的資源。




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
设计模式笔记
GoF设计模式之十六 Iterator- -
Android 程式設計入門
GOF设计模式
1.2.2 设计模式的分类
书单 | Java 程序员不可错过的10本书!https://mp.weixin.qq.com/s/LnTNvXZGXHbOaiKzOr9aGA
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服