iT邦幫忙

design pattern相關文章
共有 479 則文章

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

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

技術 Day37. 原型模式

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

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

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

技術 Day35. 代理模式

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

技術 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 27

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

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

鐵人賽 Software Development DAY 26

技術 Day26. 觀察者模式

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

鐵人賽 Software Development DAY 25

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

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

鐵人賽 Software Development DAY 24

技術 Day24. 狀態模式

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

鐵人賽 Software Development DAY 23

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

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

鐵人賽 Software Development DAY 29

技術 [Day29] 策略模式 | Strategy Pattern

文同步分享於個人blog 定義 定義一系列演算法,並將其封裝起來,使他們可以相互替換,演算法的變換不影響使用。 可以把策略想做成多種選項,依照適合的情...

鐵人賽 Software Development DAY 22

技術 Day22. 外觀模式

本文同步更新於blog Facade Pattern 提供一個統一的接口,用來訪問子系統中的一群接口。 外觀模式定義了一個高層接口,讓子系統更容易使用。...

鐵人賽 Software Development DAY 27

技術 [Day27] 備忘錄模式 | Memento Pattern

文同步分享於個人blog 定義 定義一個 Mediator 物件用來封裝一組物件的互動方式。Mediator 藉由避免物件間相互直接的引用,從而降低它...

鐵人賽 Software Development DAY 21

技術 Day21. 範例:運輸系統(工廠方法模式)

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

鐵人賽 Software Development DAY 20

技術 Day20. 工廠方法模式

本文同步更新於blog Factory Method Pattern 簡單工廠的延伸,不再提供統一的工廠類來建立所有物件,而是將Factory類別抽象化,針...

鐵人賽 Software Development DAY 19

技術 Day19. 範例:才藝表演(轉接頭模式)

本文同步發佈於blog 情境:以下是某才藝表演 <?php namespace App\AdapterPattern\TalentShow;...

鐵人賽 Software Development DAY 26

技術 [Day26] 狀態模式 | State Pattern

文同步分享於個人blog 定義 有狀態的物件,把複雜的邏輯判斷分配到不同的狀態物件中,允許狀態物件在其內部狀態發生改變時改變行為。 比如說,人在開心的...

鐵人賽 Software Development DAY 18

技術 Day18. 轉接頭模式

本文同步更新於blog Adapter Pattern 將一個類的接口,轉換成客戶期望的另一個接口。 轉接頭讓原本接口不兼容的類可以合作無間。 轉接頭模式...

鐵人賽 Software Development DAY 25

技術 [Day25] 中介者模式 | Mediator Pattern

文同步分享於個人blog 定義 定義一個 Mediator 物件用來封裝一組物件的互動方式。Mediator 藉由避免物件間相互直接的引用,從而降低它...

鐵人賽 Software Development DAY 17

技術 Day17. 範例:影片製作大師(樣板方法模式)

本文同步更新於blog 情境:以下是某攝影棚的影片製作方式 <?php namespace App\TemplateMethodPattern\...

鐵人賽 Software Development DAY 23

技術 [Day23] 命令模式 | Command Pattern

文同步分享於個人blog 定義 The Command Pattern encapsulates a request as an object, the...

鐵人賽 Software Development DAY 16

技術 Day16. 樣板方法模式

本文同步更新於blog Template Method Pattern 在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。 樣板方法模式會將類別分...

鐵人賽 Software Development DAY 22

技術 [Day22] 責任鏈模式 | Chain of Responsibility Pattern

文同步分享於個人blog 定義 將多個物件連成一條鏈,沿著這條鏈傳遞至每一個物件並處理請求。 舉一個責任鏈模式在現實生活中的例子,就是公司員工請假。一...

鐵人賽 Software Development DAY 21

技術 [Day21] 代理模式 | Proxy Pattern

文同步分享於個人blog 定義 爲其他物件提供一種代理以控制對這個物件的訪問。 代理模式是一種物件結構型模式。在代理模式中引入了一個新的代理物件,代理...