iT邦幫忙

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

技術 Day49. 橋接模式

本文同步更新於blog Bridge Pattern 將抽象部分與實現部分分離,使它們都可以獨立地變化。 橋接模式會將類別分為兩類:分別是抽象類別 (Ab...

鐵人賽 Software Development DAY 4

技術 Day4. 裡氏替換原則

本文同步更新於blog Liskov Substitution Principle (LSP) Subtypes must be substitutable...

鐵人賽 Software Development DAY 15

技術 [Design Pattern] Abstract Factory 抽象工廠模式

[Design Pattern] Abstract Factory 抽象工廠模式 桌子。 說起桌子,你會想到什麼呢?是 IKEA 的現代家具、維多利亞式的古典象...

鐵人賽 Software Development DAY 9

技術 Day9. 範例:運輸系統(簡單工廠模式)

本文同步更新於blog 情境:運輸系統,用來取得當前機型名稱等資訊 <?php namespace App\FactoryPattern\Tr...

鐵人賽 Software Development DAY 4

技術 【PHP 設計模式大頭菜】抽象工廠 Abstract Factory

抽象工廠 Abstract Factory 抽象工廠,跟靜態工廠有點像,只是它沒那麼靜態,你需要先把工廠建立出來,才能開始生產大頭菜,就有點像是星期日的早上時...

技術 Day53. 中介者模式

本文同步更新於blog Mediator Pattern 集中相關對象的之間複雜的溝通與控制方式。 中介者模式會將類別分為兩類:分別是中介者類別 (Med...

鐵人賽 Software Development DAY 13

技術 [Design Pattern] Proxy 代理模式

我們終將得到想要的東西,只是透過不同的方式來取得。 生活實例 當我們肚子餓的時候,可以自己走到巷口買食物,可以請家人順便帶食物回來,也可以使用美食外送的服務...

鐵人賽 Software Development DAY 6

技術 Day6. 依賴反轉原則

本文同步更新於blog Dependency Inversion Principle (DIP) High-level modules should not...

鐵人賽 自我挑戰組 DAY 2

技術 DAY2: 從物件導向範型談起1

在介紹設計模式前,我們要先花點時間來介紹一下兩種程式設計:功能分解 (functional decomposition) 與 物件導向範型 (object-or...

技術 Day31. 單例模式

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

鐵人賽 Software Development DAY 19

技術 【PHP 設計模式大頭菜】註冊模式 Registry Pattern

註冊模式 Registry Pattern 註冊模式,如果應用程式內有非常多同樣的物件需要高度重複讀寫,就會去建立一個儲存器來負責管理這些同樣的物件,就有點像...

技術 Day 57. 系列完結心得

嗨,我是Bear。 遵守在Day30時與自己的約定,於年前寫完所有設計模式。稍晚會將目錄更新至Day1。 以下這段話給2019年的自己 讀書會還好玩吧?...

鐵人賽 Software Development DAY 24

技術 Day24. 狀態模式

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

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

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

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

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

鐵人賽 自我挑戰組 DAY 3

技術 DAY9: 共通性與可變性分析;敏捷程式設計

本篇接著談論 Chapter 8 的後半部分,我將談到兩個主題: 共通性與可變性分析 敏捷開發與設計模式 今天的內容會比較輕鬆,偏概念性。Here we g...

技術 Day47. 組合模式

本文同步更新於blog Composite Pattern 允許將對象組合成樹形結構來表現整體/部分層次結構。 組合能讓客戶以一致的方式處理個別對象以及對象...

技術 Day48. 範例:生物分類學(組合模式)

本文同步更新於blog 情境:原本的生物分類學(界門綱目科屬種) <?php namespace App\CompositePattern\T...

鐵人賽 自我挑戰組 DAY 3

技術 DAY4: 類別間的關係

在簡單介紹完物件導向之後,我們在簡單地介紹類別間的關係。這對往後程式架構設計以及理解即將提到的設計模式有很大的幫助。 UML 圖 What the heck i...

鐵人賽 Software Development DAY 9

技術 【PHP 設計模式大頭菜】轉接器模式 Adapter Pattern

轉接器模式 Adapter Pattern 轉接器模式,顧名思義會在兩個同功能但不同的規格的東西中,當作中間溝通的橋樑,就有點像是健康的大頭菜因為放超過一個禮...

技術 Day52. 範例:新產品開發(職責鏈模式)

本文同步更新於blog 情境:公司開發了一個新產品,客戶端有許多不同的請求 客戶端的請求類別 <?php namespace App\Ch...

鐵人賽 Software Development DAY 26

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

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

技術 Day45. 解譯器模式

本文同步更新於blog Interpreter Pattern 給定一個語言,定義它的語法表示與文法。 利用不同的表達式來翻譯語言中的句子。 解譯器模式會...

鐵人賽 Software Development DAY 7

技術 【PHP 設計模式大頭菜】建造者模式 Builder Pattern

建造者模式 Builder Pattern 建造者模式,主要用來建立複雜的物件,就有點像是大頭菜的功能組成,從鈴錢價格、組合數量、現場實價 ... 等等,為了...

技術 Day54. 範例:打招呼(中介者模式)

本文同步更新於blog 情境:以下是人腦的運作程式 <?php namespace App\MediatorPattern\SayHello;...

技術 Day56. 範例:各國婚禮(訪問者模式)

本文同步更新於blog 情境:這是一間國際婚禮公司 <?php namespace App\VisitorPattern\Wedding;...

鐵人賽 Software Development DAY 12

技術 Day12. 裝飾者模式

本文同步更新於blog Decorator Pattern 動態地將責任附加到對象上。 若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 裝飾者模式會...

鐵人賽 Software Development DAY 11

技術 Day11. 範例:收銀機 (策略模式)

本文同步更新於blog 需求一:客戶想要一台收銀機 <?php namespace App\StrategyPattern\CashRegist...

鐵人賽 自我挑戰組 DAY 3

技術 DAY5: 簡單介紹設計模式

有了前幾篇的基礎後,我們可以來談這次我的主題:「設計模式」。在實際進入到各個不同模式如何實踐前,我們再花些時間了解什麼是設計模式、為什麼我們要使用它? 設計模式...

鐵人賽 Software Development DAY 5

技術 【PHP 設計模式大頭菜】工廠方法 Factory Method

工廠方法 Factory Method 工廠方法,跟抽象工廠有點像,可是又沒那麼像,抽象工廠的工廠會有個抽象類別,並且把工廠要做且會重工的事情寫在抽象類別當中...