設計模式是個好東東,在平時的專案開發中也用的很多,騰出了些時間把23種常用的gof設計模式用一些生動有趣的情景式描述介紹給大家.
模式的概念最早是由建築大師christopher alexander提出,他說:"每個模式都描述了乙個在我們的日常環境中不斷出現的問題,然後描述了該問題的解決方案的核心.通過這種方式,你可以無數次地使用那些已有的解決方案,無需再重複相同的工作."
在現實生活中,古人在遇到生存困難的時候,不斷思考、實踐、總結,最後得到了許多解決生活困難的方法.當後人遇到同樣的問題時,也用同樣的方法去解決,這些方法就是模式.
設計模式有很多種類,包括分布式程式設計模式、使用者介面模式、資料模型模式三大類,目前流行的物件導向設計模式,僅2023年(erich gamma richard helm ralph johnson john vlissides)的描述就有二十多種,這些都被稱為gof模式;與它相對應的其實還有另一種重要的設計模式-grasp(general responsibility assignment software patterns),翻譯過來就是通用責任分配軟體系列模式,名字有點長.
grasp模式重點考慮的是設計類的原則以及如何分配類的功能,而gof模式考慮設計的實現,類的互動及軟體質量,因此gof模式實際上就是符合grasp模式要求的物件導向設計模式.
接下幾天描述的都是gof模式,常用的一共有23種,都會用一些生動有趣的場景式描述來介紹它們.
設計模式 二十三 模板方法模式
template method pattern 模板方法模式 template method pattern 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模板方法模式是一種基於繼承的 復用技術,它是一種類行為型...
設計模式(二十三) 職責鏈模式
一 以加薪 為例 加薪 初步 class request public void setnumber int number public string getrequesttype public void setrequesttype string requesttype public string...
設計模式《二十三》 迭代器模式
提供一種方法順序訪問乙個聚合物件中各個元素,而又無須暴露該物件的內部表示。可以使用不同的方式來遍歷整個整合物件。iterator 抽象迭代,定義訪問和遍歷元素的介面,一般都是固定介面 first,next,isdone last concreteiterator 具體迭代器,實現迭代器介面,完成容器...