重溫《深入淺出設計模式》心得整理(Book Review of Head ...

文章推薦指數: 80 %
投票人數:10人

重溫《深入淺出設計模式》心得整理(Book Review of Head First Design Pattern, Summary) · 模式回顧. 策略模式; 工廠模式; 裝飾者模式; 命令模式; 合成 ... 2020-07-17 LearningNote 模式回顧策略模式工廠模式裝飾者模式命令模式合成模式反覆器模式外觀模式狀態模式轉接器模式樣板方法模式代理人模式單體模式HeadFirst未提及的其他模式模式的分類生成Generate行為Behavior結構StructureOOP原則參考資料 將近三週的時間,將近完成重溫進度的90%,在最後Summary各模式的回顧並且筆記書中所提及的OOP原則,並紀錄書中尚未詳細介紹的模式,留待之後繼續實踐。

同時也謹記書中最後的提醒:設計模式作為一種在一般性的情境、目標與解決方案下所被發現的結構,模式的使用並不是絕對與唯一,模式背後的OOP原則如果就能夠精準且保有彈性的解決問題,未必要加入模式讓專案變得複雜。

之後的學習規劃不以模式本身為主,而是進入MVC的框架,從框架的原始碼中發現設計模式,用設計模式理解MVC框架,讓兩者相輔相成。

模式回顧策略模式 原則:利用多型(Polymorphism)並以實踐介面(Interface)的方式來設計程式,這樣可以保持系統變動時候的彈性;將可以互換的行為封裝起來。

實作:將程式碼抽取成介面,並以實作介面的方式開發;執行期的型別以介面為型別,發揮多型的效用。

📒筆記回顧 工廠模式 原則:由次類別決定要建立的ConcreteClass;允許客戶建立物件的家族、而無須指定他們的ConcreteClass。

實作:將程式碼中生成物件的ifelse抽離成獨立類別,以專門的類別負責條件式生成物件。

📒筆記回顧 裝飾者模式 原則:將物件包裝起來提供新的行為。

實作:裝飾者與被裝飾者實踐共同的介面;裝飾者使用合成的方式包含被裝飾者。

📒筆記回顧 命令模式 原則:將請求封裝成為物件。

實作:Invoker利用合成的方式擁有實作命令介面的類別集合,負責佇列與執行命令;命令類別利用合成的方式擁有Receiver為真正的邏輯演算法的執行者;Client是負責初始化命令以及組裝Receiver。

📒筆記回顧 合成模式 原則:令客戶面對個別物件與物件的集合時仍夠採取一致的處理方式。

實作:葉衍生類別與子集合衍生類別實踐共同介面;子衍生集合類別利用合成的方式指向孫衍生類別。

📒筆記回顧 反覆器模式 原則:令物件在集合之中走訪時,不需要顯示其演算邏輯。

實作:ICollection介面與IIterator介面,Client同時擁有兩者,並呼叫IIterator的公有方法;ICollection的衍生類別要回傳實作IIterator的物件。

📒筆記回顧 外觀模式 原則:提供一個簡化一群類別的操作方式的介面。

實作:利用合成的方式,將一群類別的調用方式包裝在表象類別中,提供精簡的方法供外界使用。

📒筆記回顧 狀態模式 原則:封裝以狀態為基礎的行為,並依據狀態的不同多型地使用行為方法。

實作:狀態作為一種類別,實踐它的衍生類別實踐介面的方法。

Client在狀態轉換上,多型地使用衍生類別的方法。

📒筆記回顧 轉接器模式 原則:將物件封裝以相容其他介面。

實作:將要轉接的對象(target)作為介面(Interface),衍生類別(adapter)實踐此介面,並且合成一個要被轉型的類別(adaptee) 📒筆記回顧 樣板方法模式 原則:由衍生類別決定如何實踐演算法中的步驟。

實作:抽象化類別中相似的演算步驟為抽象類別,並令衍生類別繼承及實作抽象類別。

📕筆記回顧 代理人模式 原則:將物件包裝起來,用以控制對物件的存取。

實作: 📕筆記回顧 單體模式 原則:將物件包裝起來,用以控制對物件的存取。

實作: 📕筆記回顧 HeadFirst未提及的其他模式 BrdigePattern BuilderPattern ChainOfResponsibilityPattern FlyweightPattern InterpreterPattern MediatorPattern MementoPattern PrototypePattern VisitorPattern 模式的分類生成Generate Singleton Builder AbstractFactory FactoryMethod Prototype 行為Behavior Mediator Visitor TemplateMethod Interpreter ChainofResponsibility Stable Strategy State Iterator Memento Observer 結構Structure Proxy Bridge Facade Composite Adapter Decorator Flyweight OOP原則✔️將變動的部分封裝起來✔️多用合成,少用繼承✔️讓需要互動的物件之間的關係鬆綁✔️類別應該對需求保持開放;應該對既有的程式碼修改保持關閉✔️依賴抽象,不要依賴具象類別✔️最小知識原則✔️類別只有一個理由可以改變✔️好萊塢守則,低階(具象)元件可以掛勾到系統上,但必須由高階(抽象)元件決定何時呼叫 參考資料 Github-Head-First-Design-Patterns sourcemaking Github-DesignPatternsC# 前一篇文章 鳥瞰ASP.NETMVC生命週期筆記 下一篇文章 資安事件鑑識課程筆記 最新文章 SQLServerTroubleshooting疑難排解起手式🎮 IISRemoteAdministration WindowsServerCoreInstallation 實踐SSDLC與《資通安全稽核計畫及稽核作業》⏳ SQLServer安裝使用Setup.exe(WindowsServerCore) 分類 Blog3Cloud2CyberSecurity18Database115Design1Dev151IIS32LearningNote24LifeHack5Microsoft1Misc32Mobile1Network4OS58Office11PowerBI8Resource10Toys21TroubleShooting4Vue13 文件庫 202214320212432020128 Home Categories Tags Archives Apps About



請為這篇文章評分?