本文同步更新於blog 需求一:KTV系統要按照新增到系統的時間,由舊到新,實作歌曲排行 定義系統存取歌曲的類別(解析傳進來的data) <?...
本文同步更新於blog Template Method Pattern 在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。 樣板方法模式會將類別分...
嗨,我是Bear。 遵守在Day30時與自己的約定,於年前寫完所有設計模式。稍晚會將目錄更新至Day1。 以下這段話給2019年的自己 讀書會還好玩吧?...
本文同步更新於blog 需求一:客戶想要一個漢堡點餐系統 <?php namespace App\DecoratorPattern\Burger...
介紹 何謂原則(Principle) A principle is a concept or value that is a guide for behavi...
本文同步更新於blog 情境:公司開發了一個新產品,客戶端有許多不同的請求 客戶端的請求類別 <?php namespace App\Ch...
本文同步更新於blog 情境:原本的生物分類學(界門綱目科屬種) <?php namespace App\CompositePattern\T...
本文同步更新於blog Interpreter Pattern 給定一個語言,定義它的語法表示與文法。 利用不同的表達式來翻譯語言中的句子。 解譯器模式會...
本文同步更新於blog Singleton Pattern 確保一個類只有一個實例,並提供一個全局訪問點。 單例模式只會將類別分為一類,即單例類別 (Si...
本文同步更新於blog 需求一:客戶想要能與資料庫連線的類別 <?php namespace App\SingletonPattern\DBC...
本文同步更新於blog Mediator Pattern 集中相關對象的之間複雜的溝通與控制方式。 中介者模式會將類別分為兩類:分別是中介者類別 (Med...
本文同步更新於blog 情境:這是一間國際婚禮公司 <?php namespace App\VisitorPattern\Wedding;...
本篇會介紹 何謂 singleton 模式 用案例來看看如何實踐它 何謂 double-checked locking 模式 又如何實踐它 先簡單的說,這兩...
本文同步更新於blog 需求一:客戶想要一台收銀機 <?php namespace App\StrategyPattern\CashRegist...
本文同步更新於blog 情境:以下是人腦的運作程式 <?php namespace App\MediatorPattern\SayHello;...
本文同步更新於blog Composite Pattern 允許將對象組合成樹形結構來表現整體/部分層次結構。 組合能讓客戶以一致的方式處理個別對象以及對象...
本文同步更新於blog Chain Of Responsibility Pattern 使多個物件都有機會處理請求, 從而避免請求的發送者和接受者間的耦合關...
在介紹設計模式前,我們要先花點時間來介紹一下兩種程式設計:功能分解 (functional decomposition) 與 物件導向範型 (object-or...
在簡單介紹完物件導向之後,我們在簡單地介紹類別間的關係。這對往後程式架構設計以及理解即將提到的設計模式有很大的幫助。 UML 圖 What the heck i...
建造者模式 Builder Pattern 建造者模式,主要用來建立複雜的物件,就有點像是大頭菜的功能組成,從鈴錢價格、組合數量、現場實價 ... 等等,為了...
靜態工廠 Static Factory 靜態工廠,顧名思義就是希望這整個工廠都是屬於靜態屬性的,無論到哪裡都以靜態方法來使用這個工廠,就像是在星期日的早上時,...
本系列文章已出版實體書籍:「你的地圖會說話?WebGIS 與 JavaScript 的情感交織」(博碩文化)WebGIS啟蒙首選✖五家地圖API✖近百個程式範...
工廠方法 Factory Method 工廠方法,跟抽象工廠有點像,可是又沒那麼像,抽象工廠的工廠會有個抽象類別,並且把工廠要做且會重工的事情寫在抽象類別當中...
規格模式 Specification Pattern 規格模式,將邏輯條件給抽離出來,獨立成一個模組,而不是在物件內透過邏輯判斷來撰寫複雜的程式碼,簡化物件所...
本文同步更新於blog Strategy Pattern 定義算法族,分別封裝,讓彼此之間能互相替換,使算法變化獨立。 策略模式只會將類別分為一類,即算法...
轉接器模式 Adapter Pattern 轉接器模式,顧名思義會在兩個同功能但不同的規格的東西中,當作中間溝通的橋樑,就有點像是健康的大頭菜因為放超過一個禮...
本文同步更新於blog State Pattern 允許對象在內部狀態改變時,改變它的行為,對象看起來好像修改了它的類。 狀態模式會將類別分為兩類:分別是...
本篇接著談論 Chapter 8 的後半部分,我將談到兩個主題: 共通性與可變性分析 敏捷開發與設計模式 今天的內容會比較輕鬆,偏概念性。Here we g...
本文同步更新於blog Decorator Pattern 動態地將責任附加到對象上。 若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 裝飾者模式會...
本文同步更新於blog Visitor Pattern 允許在不改變組合內各元素的情況下,增加各元素的新操作。。 訪問者模式會將類別分為兩類:分別是訪問者...