iT邦幫忙

設計模式相關文章
共有 132 則文章

技術 Day44. 範例:文字積木 (蠅量模式)

本文同步更新於blog 情境:這是公司生產的文字積木 <?php namespace App\Flyweight\Blocks; class...

技術 Day43. 蠅量模式

本文同步更新於blog Flyweight Pattern 又稱為享元模式,於相似物件中共享儘可能多的資訊, 進而減少記憶體使用量。 蠅量模式會將類別分為...

技術 Day42. 範例:仿真Git (備忘錄模式)

本文同步更新於blog 情境:讓我們利用備忘錄模式,實作一個仿真Git 首先定義Commit <?php namespace App\Me...

技術 Day41. 備忘錄模式

本文同步更新於blog Memento Pattern 透過對象外的存檔,讓對象能夠載入之前的狀態。 備忘錄模式會將類別分成三類: 分別是原始類別 (Or...

技術 Day40. 範例:假期規劃 (建造者模式)

本文同步更新於blog 情境:目前提供旅遊行程的方式 <?php namespace App\BuilderPattern\Vacation;...

技術 Day39. 建造者模式

本文同步更新於blog Builder Pattern 將複雜對象的構建與其表示分離。 建造者模式會將類別分為三類: 分別是指揮者類別 (Director...

技術 Day38. 範例:三隻小豬 (原型模式)

本文同步更新於blog 情境:三隻小豬想要蓋房子 首先是牆壁,可以選擇不同的建材 <?php namespace App\Prototype...

技術 Day37. 原型模式

本文同步更新於blog Prototype Pattern 當創建實例的過程很昂貴或複雜時,透過拷貝這些原型來建立新的實例。 原型模式中會將類別分為兩類:...

技術 7+1 Sass 設計模式 DAY42

7+1 Sass 設計模式: https://gist.github.com/rveitch/84cea9650092119527bc 這裡可以看到它 創建了一...

技術 BEM 基礎介紹 DAY41

BEM B: Block(區塊) E: Element(元素) __ 雙下底線 M: Modifire(修飾符號) -- 雙中線 官網:http://getbe...

技術 Day36. 範例:快取代理(代理模式)

本文同步更新於blog 情境:以下是某搜尋功能 客戶端程式碼 <?php namespace App\ProxyPattern\Cache;...

技術 Day35. 代理模式

本文同步更新於blog Proxy Pattern 為另一個對象提供一個替身或佔位符以控制這個對象的訪問。 代理模式將類別分為兩類: 分別是實體類別 (R...

技術 Day34. 範例:歌曲排行(迭代器模式)

本文同步更新於blog 需求一:KTV系統要按照新增到系統的時間,由舊到新,實作歌曲排行 定義系統存取歌曲的類別(解析傳進來的data) <?...

技術 Day33. 迭代器模式

本文同步更新於blog Iterator Pattern 提供一種方法順序訪問一個聚合對象中的各個元素, 而又不暴露其內部的表示。 迭代器模式會將類別分為...

技術 Day32. 範例:資料庫連線(單例模式)

本文同步更新於blog 需求一:客戶想要能與資料庫連線的類別 <?php namespace App\SingletonPattern\DBC...

技術 Day31. 單例模式

本文同步更新於blog Singleton Pattern 確保一個類只有一個實例,並提供一個全局訪問點。 單例模式只會將類別分為一類,即單例類別 (Si...

鐵人賽 Software Development DAY 30

技術 Day30. 8人訂閱Q&A問答

前情提要:Day1. 前言(動機與簡介) 動機 重新整理在blog中的相關內容。 與大家討論學習。 時間回到三個月前 那時剛開始用hexo玩部落格...

鐵人賽 Software Development DAY 29

技術 Day29. 範例:運輸系統 (抽象工廠模式)

本文同步更新於blog 前情提要:鐵路運輸系統,參考範例:運輸系統(工廠方法模式) <?php namespace App\FactoryPa...

鐵人賽 Software Development DAY 28

技術 Day28. 抽象工廠模式

本文同步更新於blog Abstract Factory Pattern 提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。即產品增加產品...

鐵人賽 Software Development DAY 30

技術 【PHP 設計模式大頭菜】模板方法 Template Method

模板方法 Template Method 模板方法,是一種如果這包水泥我有、你也有,就連喬瑟夫都有,那我們就應該把這八百包水泥抽離出來的設計模式,是設計模式中...

鐵人賽 Software Development DAY 27

技術 Day27. 範例:Line群組通知(觀察者模式)

本文同步更新於blog 情境:讓我們用Line群組,來實作觀察者模式 首先實作抽象的觀察者類別 (Observer) 其中會有接收到主題類別通知時...

鐵人賽 Software Development DAY 29

技術 【PHP 設計模式大頭菜】策略模式 Strategy Pattern

策略模式 Strategy Pattern 策略模式,可以讓物件在運作時更改其行為或算法,你可以透過切換策略物件來改變計有的功能,你需要實作一個介面來代表這個...

鐵人賽 Software Development DAY 28

技術 【PHP 設計模式大頭菜】狀態模式 State Pattern

狀態模式 State Pattern 狀態模式,讓物件的狀態改變時,一同改變物件的行為模式,就像是大頭菜(Turnips)這個物件,有沒有壞掉只是一個狀態(S...

鐵人賽 Software Development DAY 26

技術 Day26. 觀察者模式

本文同步更新於blog Observer Pattern 在對象之間定義一對多的依賴。 當一個對象改變狀態,依賴它的對象都會收到通知,並自動更新。 亦被稱作...

鐵人賽 Software Development DAY 25

技術 Day25. 範例:會員制(狀態模式)

本文同步更新於blog 情境:平台有三種身份,分別是訪客 (guest)、會員 (member)及付費會員(premium) 訪客藉由註冊 (regi...

鐵人賽 Software Development DAY 27

技術 【PHP 設計模式大頭菜】規格模式 Specification Pattern

規格模式 Specification Pattern 規格模式,將邏輯條件給抽離出來,獨立成一個模組,而不是在物件內透過邏輯判斷來撰寫複雜的程式碼,簡化物件所...

鐵人賽 Software Development DAY 24

技術 Day24. 狀態模式

本文同步更新於blog State Pattern 允許對象在內部狀態改變時,改變它的行為,對象看起來好像修改了它的類。 狀態模式會將類別分為兩類: 分別...

鐵人賽 Software Development DAY 26

技術 【PHP 設計模式大頭菜】觀察者模式 Observer Pattern

觀察者模式 Observer Pattern 觀察者模式,一種現在全中國都知道你來了的模式,就有點像是收音機,打開收音機就開始自動接收廣播,關掉收音機就停止接...

鐵人賽 Software Development DAY 23

技術 Day23. 範例:自助餐餐廳 (外觀模式)

本文同步更新於blog 情境:以下是某自助餐餐廳的情況 自助式霜淇淋機 <?php namespace App\FacadePattern\...

鐵人賽 Software Development DAY 25

技術 【PHP 設計模式大頭菜】空物件模式 Null Object Pattern

空物件模式 Null Object Pattern 空物件模式,一種以非 Null 的空白物件去取代 Null 的模式,其空白物件並不是拿來比對資料是否為 N...