
Chetan Giridhar 吉里德爾
設計模式是構建大型軟件系統zui強大的方法之一,優化軟件架構和設計已經逐漸成爲軟件開發和維護過程中的一個重要課題。本書通過11章內容,全面揭示有關設計模式的內容,並結合Python語言進行示例化的解析。全書囊括單例設計模式、工廠模式、門面模式、代理模式、觀察者模式、命令模式、模板方法模式、複合模式、狀態設計模式以及反模式等多種設計模式。本書適合那些關注軟件設計原則,並想將you秀的設計模式應用到Python編程當中的讀者閱讀,也適合普通的軟件工程師、架構師參考。
四星評價,2020年的第9本書,設計模式本質上是一種發現和總結提煉,而不是發明,感覺每一種都在使用,但是每一種都沒用好或者在使用過程中放飛自我。本書講訴了9種設計模式,python還挺適合用來講設計模式的,四人幫的另外14種並沒有講解,不知道出於什麼原因。看完了第一感覺是好長見識,提升了整個編程境界,第二感覺是好像沒有什麼用,最大的用途是用來和別人辯論,吹牛逼和麪試時用,更多的是改變觀念和思路。最後那一張反設計模式總結的很贊,麪條式代碼,金錘,複製粘貼式代碼,熔岩效應等說的一針見血,關於重造輪子的分析說的雖然隱晦但是充分精闢,本書值得推薦。
[第19本] 本書優點:具有反饋機制,能對講模式優缺點進行對比並提問挑戰。 缺點:名不符其實,未能結合語言特性對模式進行講解,只是給了模式的Python實例,另外所給實例對項目開發實用性不高。
這本書講的一般吧,尤其現在都是Vibe Coding了,很少還需要研究這些設計模式。
這本書裏的代碼,很多地方不符合規範。實現得並不高明。用的版本也比較老了。微信讀書上有其他講Python設計模式的。建議換一本看。
作爲初級程序員,這本書提高了我思考問題的高度,不在侷限於具體的細節問題,進而從宏觀的層面思考問題、解決問題。
單例:類只有一個對象,類的全局訪問點,每次實例化都返回同一個對象。python的模塊都是單例。可以通過cls.__new__或元類的__call__來實現。元類方法更好,不需要每個單例都實現new而只要元類是單例。簡單工廠:原來要到處實例化類,現在只要用一個簡單工廠封裝所有產品,增刪只需要增刪產品和類型,簡單工廠對外不需要做任何修改。工廠:在簡單工廠的基礎上,子類重載父類,改寫父類工廠方法。用於工廠對外方法不一致情況。抽象工廠:並行的多個工廠,使用多個不同的產品。工廠是串行的,抽象工廠是並行的,如果一個工廠使用了多個不同產品則不能再用工廠模式。所謂工廠並不一定要返回類的實例,也有可能是使用一個類。對話字幕,頭頂標誌,npc對話分支,凡是類似功能的類和拿模式來區分功能的類,都可以拿工廠模式改寫。門面模式:婚慶籌備,家裏裝修都是門面模式,門面類通過組合子系統,暴露更少的接口給客戶端。代理模式:代理和目標對象有相同接口,代理保存對目標對象的引用,從而實現訪問控制。如果腳本用到引擎接口可以考慮用代理封裝。觀察者:這種模式已經被用爛了,觀察者bind和detach觀察事件,觀察對象trigger事件。所有綁定和觸發都來自觀察對象,觀察者只處理觀察事件。命令模式:把調用命令和命令執行解耦,中間的命令可以實現隊列,回滾等操作。模版模式:舉個最簡單例子,打包分收集引擎,收集包體,打包和發佈幾個步驟,蘋果和安卓一樣,所以只需要改寫繼承的相應步驟,總體流程不變。MVC模式:設置是典型的mvc,c控制設置數據和界面的雙向更新。狀態模式:攝像機狀態就是這種模式,跟隨模式,自由相機,攝像機使用不同狀態的過渡,跟隨,旋轉等操作。這本書講的都在這了,應該是不全。
我一直喜歡函數式編程,對面向對象編程一直感到困惑,覺得不直觀。通過這本書,我瞭解面向對象多了一些,面向對象在代碼組織方面有時確實好於面向過程,可讀性和可維護性更好一些。第一個單例模式就讓我眼前一亮,這確實解決了一直困撓我的問題。書中代碼質量一般,只能做示例用,懶漢模式也無法復現。
說明和示例較簡略,新手或完全不瞭解設計模式的開發者閱讀會比較喫力,對於有經驗的開發者深度又不夠,比較尷尬的一本書。
簡單介紹設計模式在Python中的應用,對於初學者可以先建立一下概念,對於非初學者可以作爲筆記快速熟悉設計模式的相關概念。 作者想深入淺出的講解設計模式在Python中的應用,舉得例子不太太好,或者例子太少,少有直接收穫。
好書啊!!簡單易懂的例子,讓小白迅速get!結合 Python 的使用講解設計模式的應用,非常有幫助!