1856 views
# Design Pattern 設計模式 --- ## 參考網頁: >https://design-patterns.readthedocs.io/zh_CN/latest/index.html >https://dotblogs.com.tw/pin0513/series/1?qq=%E8%A8%AD%E8%A8%88%E6%A8%A1%E5%BC%8F > [iT邦幫忙30天鐵人賽](https://ithelp.ithome.com.tw/users/20112528/ironman/2113) > https://xyz.cinc.biz/2013/08/blog-post_16.html > https://github.com/QianMo/Unity-Design-Pattern?fbclid=IwAR1WM26_wf-mxUr8Kvow5FshZkZlqalgP44fL0eifuv7eytMBs5ghhwVf1M > [youtube教學(英文)](https://www.youtube.com/playlist?list=PL7rVTwUzzPyLU97SIaL-IeJ-YsQa4PTK5) >http://corrupt003-design-pattern.blogspot.com/2017/02/blog-post.html >http://twmht.github.io/blog/category/design-pattern.html --- ## **Creational Patterns 創建型模式** 處理物件建立的設計模式,試圖根據實際情況使用合適的方式建立物件。基本的物件建立方式可能會導致設計上的問題,或增加設計的複雜度。建立型模式通過以某種方式控制物件的建立來解決問題。 - [Prototype Pattern 原型模式](https://hackmd.mcl.math.ncu.edu.tw/O7c88356QhC1cFArYd7tDw?both) - [Singleton Pattern 單例模式](https://hackmd.mcl.math.ncu.edu.tw/JOjD2TUmQJChJdIM7AjONA) - [Abstract Factory Pattern 抽象工廠模式](https://hackmd.mcl.math.ncu.edu.tw/a4-wyyqOQQ6kLTzHmssVHQ) - [Builder Pattern 建造者模式](https://hackmd.mcl.math.ncu.edu.tw/gJynB-FWSzKvthZwQB6X1w) - [Factory Method Pattern 工廠方法模式](https://hackmd.mcl.math.ncu.edu.tw/LsqnSIQXQ_GLR4R_wXK0zg) 補充: > https://blog.techbridge.cc/2017/05/22/factory-method-and-abstract-factory/ > 工廠方法與抽象工廠的差異 ## **Structural Patterns 結構型模式** 描述如何將類或者對象结合在一起形成更大的結構,就像搭積木,可以通過簡單積木的组合形成複雜的、功能强大的結構。 結構型模式可以分為==類結構型模式==和==物件結構型模式==: 1. **類結構型模式** 關心類的組合,由多個類可以組合成一個更大的系統,在類結構型模式中一般只存在繼承關係和實現關係。 1. **物件結構型模式** 關心類與物件的組合,通過關聯關係使得在一個類中定義另一個類的實例物件,然後通過該物件調用其方法。 - [Adapter Pattern 適配器模式(轉接器模式)](https://hackmd.mcl.math.ncu.edu.tw/sX7uQg9VRGCTdT3_x3xc-w) - [bridge Pattern 橋接模式](https://hackmd.mcl.math.ncu.edu.tw/UXkF9KkjRUGPNUADD9UcZQ) - [Composite Pattern 組合模式](https://hackmd.mcl.math.ncu.edu.tw/Fim1XasSSpeo6a13bfCPAQ) - [Decorator Pattern 裝飾模式](https://hackmd.mcl.math.ncu.edu.tw/ZKx1dN-QSb-WFilGvThAKw?both) - [Facade Pattern 外觀模式(表象模式)](https://hackmd.mcl.math.ncu.edu.tw/bCCtviPjQvmcgSrMTdqjdA) - [Flyweight Pattern 享元模式](https://hackmd.mcl.math.ncu.edu.tw/DniFWfEVQBCAHsL8ckLyqQ) - [Proxy Pattern 代理模式](https://hackmd.mcl.math.ncu.edu.tw/8oEOsSFYRomGADqYJouS8Q) > 七種模式之比較 > https://www.itread01.com/content/1544145064.html ## **Behavioral Patterns 行為型模式** 旨在探討物件之間的行為互動及分配,良好的行為互動,使程式的執行更有效率,物件的調度更有彈性。 - [Command Pattern 命令模式](https://hackmd.mcl.math.ncu.edu.tw/WKNBaCmoQKWodiW569T9-Q) - [State Pattern 狀態模式](https://hackmd.mcl.math.ncu.edu.tw/EGF6UiZ5RvmuslV81bSYuA) - [Observer Pattern 觀察者模式](https://hackmd.mcl.math.ncu.edu.tw/zM_nmb2aSvy2OTath1eDDg) - [Chain of Responsibility Pattern 責任鏈模式](https://hackmd.mcl.math.ncu.edu.tw/TmIFh_9GRxKSMlZ853nKHQ) - [Mediator Pattern 中介者模式(仲介者模式)](https://hackmd.mcl.math.ncu.edu.tw/eyX6WOn1THifV7-40T8mPA) - [Interpreter Pattern 解釋器模式](https://hackmd.mcl.math.ncu.edu.tw/rdPw5VGfSL2okkaU9ZlE1A) - [Iterator Pattern 迭代器模式](https://hackmd.mcl.math.ncu.edu.tw/3mYorTjOTwuSEqmEsuvOTw) - [Memento Pattern 備忘錄模式](https://hackmd.mcl.math.ncu.edu.tw/c_cbmEjDQ32bDkXsZlrubA) - [Strategy Pattern 策略模式](https://hackmd.mcl.math.ncu.edu.tw/yuA-YWAZQPyMLDfR2r0Ehw) - [Template Method Pattern 模板方法模式(範本方法模式)](https://hackmd.mcl.math.ncu.edu.tw/jU2Hx3PfQwKXttRZz38lMg) - [Visitor Pattern 訪問者模式](https://hackmd.mcl.math.ncu.edu.tw/pWOuFlfgQsuWH3a4Y51oaA)