本文同步更新於blog Factory Method Pattern 簡單工廠的延伸,不再提供統一的工廠類來建立所有物件,而是將Factory類別抽象化,針...
前言 —— 自介&參賽原因 大家好,我是哈伯,是個很菜的後端工程師。我的出身是數學系,在就學的時候跟寫程式沒什麼緣,直到出來找工作才硬把 coding 練起來。...
為什麼需要設計模式?不是只要會用介面、抽象、類別就可以寫程式了嗎?在寫程式的初期我也是抱持這種想法,隨著工作時間的積累,寫出的程式已經比當初一頁式寫滿二、三千行...
本文同步發佈於blog 情境:以下是某才藝表演 <?php namespace App\AdapterPattern\TalentShow;...
狀態模式 State Pattern 狀態模式,讓物件的狀態改變時,一同改變物件的行為模式,就像是大頭菜(Turnips)這個物件,有沒有壞掉只是一個狀態(S...
今天要討論的是 Strategy 模式。這個模式會分做兩篇。 在今天這一篇,我首先先提出一個案例。遇到需求時,我們有什麼可能的解決方式?最後,我們在引入策略模式...
本文同步更新於blog 情境:以下是某攝影棚的影片製作方式 <?php namespace App\TemplateMethodPattern\...
仲介者模式(Mediator)在GoF中的說明是:「定義一個介面用來包裝一群物件的互動行為。仲介者藉由移除物件間的引用,來減少它們之間的耦合度,並且能讓你改變...
7+1 Sass 設計模式: https://gist.github.com/rveitch/84cea9650092119527bc 這裡可以看到它 創建了一...
備忘錄模式 Memento Pattern 備忘錄模式,在不破壞封裝物件的前提之下,提供物件一個「皇后殺手 第三爆彈:敗者成塵」的能力,物件在極度絕望的狀態下...
中介者模式 Mediator Pattern 中介者模式,在兩個不同的封裝物件之間,作為中間進行交互的模式,可以減少物件之間的依賴關係,並且降低耦合性問題,舉...
本文同步更新於blog 情境:以下是某自助餐餐廳的情況 自助式霜淇淋機 <?php namespace App\FacadePattern\...
依賴注入 Dependency Injection 依賴注入模式,是控制反轉(Inversion of Control,縮寫為IoC)的一種實作方式,主要是將...
本文同步更新於blog 前情提要:鐵路運輸系統,參考範例:運輸系統(工廠方法模式) <?php namespace App\FactoryPa...
BEMB: Block(區塊)E: Element(元素) __ 雙下底線M: Modifire(修飾符號) -- 雙中線 官網:http://getbem.c...
本文同步更新於blog Abstract Factory Pattern 提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。即產品增加產品...
這篇我們介紹 observer 模式。本篇會涵蓋: 簡介 observer 模式 案例:電子商務的新需求 Observer 模式關鍵特徵 與其他模式的合用...
Bridge 模式定義 GoF 是如此定義的: 將抽象與實作解耦合,使它們都可以獨立地變化。 要注意到,這裡的抽象和實作。必須對它們有正確的認知,才不會搞不...
Singleton的定義 單例模式(Singleton)在GOF 中的說明是:「確認類別只有一個物件,並且提供一個全域的方法來取得這個物件」講得更簡單點,Sin...
今天要來說佔了接下來將近一半天數的設計模式了,畢竟說到擴充性,沒有比設計模式更加廣為人知的詞彙,畢竟設計模式可說是物件導向實踐的重要範本。更何況設計模式是一個已...
組合模式 Composite Pattern 組合模式,一種將物件一個一個處理,並且最後組合起來的模式,可以想像剛買到大頭菜時的夢想,經過每次漲跌所帶來的希望...
享元模式 Flyweight Pattern 享元模式,在定義上來說是共享物件,將相似的物件集中整理,減少記憶體上的使用,舉例來說每座島的大頭菜鈴錢價格都不同...
軟體開發的不變真理─改變 設計程式時,當我們收到需求之後,要做出來很容易,要做得好的上下限卻差很多。如果你能確保這軟體寫完用一次就不需要了,未來不支持更新,那你...
本篇將介紹何謂 object pool 模式,提及的案例是本書作者實際遇到的專案問題。 直接進入案例 這一章 (Chapter 22) 有一些篇幅放在除了實踐此...
GoF定義將抽象與實作分離,讓他們之間的變化獨立 在這次的範例中,會以怎麼讓三種形狀的物件擁有染上相對應顏色的程式作為例子。在這邊我們將渲染顏色的功能抽象化...
為什麼要了解設計模式 當我說"沉默螺旋"(spiral of silence),你知道我在說什麼嗎? 你如果知道,我就不用解釋繼續講下去,甚...
今天我們會再更近一步討論工廠模式,討論為何工廠物件能夠幫助我們簡化程式碼,以及了解工廠物件的一些原則與背後的意義。 何謂工廠? 首先,我們先來定義「工廠」的含義...
狀態模式(State),在GoF 中的解釋是:「讓一個物件的行為隨著內部狀態的改變而變化,而該物件也像是換了類別一樣。」 以流離之歌這款遊戲來說,在操作上就有以...
今天我們介紹 abstract factory 模式。本篇包括: 簡介此模式 舉例說明 此模式的關鍵特徵描述 簡單來說:abstract factory...
前面的篇章中分享了SOLID五大原則,我們可以在分析、設計時不斷的反思是否有遵循這些原則,不至於到了最後才發現,我們做出一個結構松散的架構。也分享了一些OOA、...