本文同步更新於blog 情境:以下是某攝影棚的影片製作方式 <?php namespace App\TemplateMethodPattern\...
文同步分享於個人blog 定義 定義一個 Mediator 物件用來封裝一組物件的互動方式。Mediator 藉由避免物件間相互直接的引用,從而降低它...
本文同步更新於blog Template Method Pattern 在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。 樣板方法模式會將類別分...
本文同步更新於blog 情境:這是一間牛排館,會根據客戶的訂單出菜 <?php namespace App\CommandPattern\Wes...
文同步分享於個人blog 定義 The Command Pattern encapsulates a request as an object, the...
本文同步更新於blog Command Pattern 將請求封裝成對象,以便使用不同的請求來進行參數化。 命令模式也支持隊列、日誌及可撤銷的操作。 命令...
文同步分享於個人blog 定義 將多個物件連成一條鏈,沿著這條鏈傳遞至每一個物件並處理請求。 舉一個責任鏈模式在現實生活中的例子,就是公司員工請假。一...
本文同步更新於blog 需求一:客戶想要一個漢堡點餐系統 <?php namespace App\DecoratorPattern\Burger...
文同步分享於個人blog 定義 爲其他物件提供一種代理以控制對這個物件的訪問。 代理模式是一種物件結構型模式。在代理模式中引入了一個新的代理物件,代理...
文同步分享於個人blog 定義 運用共享技術有效地支持大量細粒度的物件。 享元模式是運用共享技術有效地支持大量細粒度的物件。他可以避免大量相似類的開銷...
本文同步更新於blog Decorator Pattern 動態地將責任附加到對象上。 若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 裝飾者模式會...
本文同步更新於blog 需求一:客戶想要一台收銀機 <?php namespace App\StrategyPattern\CashRegist...
文同步分享於個人blog 定義 為子系統中的一組接口提供一個統一的高層接口,使得子系統更容易使用。 簡單來說,就是提供一個接口給客戶端使用,接口內包含...
本文同步更新於blog Strategy Pattern 定義算法族,分別封裝,讓彼此之間能互相替換,使算法變化獨立。 策略模式只會將類別分為一類,即算法...
文同步分享於個人blog 定義 裝飾模式動態將責任附加在物件上,若要擴展功能上,裝飾者提供比繼承更有彈性的替代方案。 拿生活來說,我買了一棟三房兩廳兩...
本文同步更新於blog 情境:運輸系統,用來取得當前機型名稱等資訊 <?php namespace App\FactoryPattern\Tr...
本文同步分享於個人blog 定義 物件以樹狀結構組合,做為表現出整體-部分的階層關係。 Composite Pattern使得使用者對單個物件和組合物...
其實 Proxy 是一個相當廣的概念,它可以代表一種設計模式,也可以代表實際存在的網路實體。若是實體,又可以存在於 backend server 之間,也能存...
本文同步更新於blog Simple Factory Pattern 又稱為靜態工廠,傳入不同的參數以取得不同的類別物件。 簡單工廠模式會將類別分為兩類:...
此文同步於個人Blog 定義 將抽象部分與實現部分分離,使它們都可以獨立的變化。 橋接模式(Bridge Pattern)是用合成關係代替繼承關係,進...
本文同步更新於blog Class Diagram Class diagram describes the structure of a system by...
本文同步分享於個人blog 定義 The Adapter Pattern converts the interface of a class into...
本文同步更新於blog Dependency Inversion Principle (DIP) High-level modules should not...
本文同步分享於個人blog 定義 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。 看完這個定義,大概可以猜到,這個模式的用途是讓我們...
本文同步分享於個人blog 定義 把一個複雜物件的建構與樣貌分離,如此相同的建構過程可以產生不同樣貌的物件 先舉一個簡單的例子:組一台電腦! 現在我想...
本文同步更新於blog Interface Segregation Principle (ISP) No client should be forced t...
本文同步更新於blog Liskov Substitution Principle (LSP) Subtypes must be substitutable...
本文同步分享於個人blog 定義 提供一個建立一系列相關或者相互依賴物件的介面,而無需指定它們具體的類。 簡單來說就是 提供一個介面,用來建立相關的...
本文同步更新於blog Open-Close Principle (OCP) A software artifact should be open for...
本文同步分享於個人blog Sample Factory Pattern 定義 藉由定義一個class來負責建立其他class的instance,被建...