iT邦幫忙

design pattern相關文章
共有 487 則文章
鐵人賽 Software Development DAY 19
前端也想學設計模式 系列 第 19

技術 Day 19 - Composite 合成

合成模式藉由統一樹狀結構中所有節點的介面,使不同類型的節點擁有相同的操作介面。 生活範例 一間企業由不同部門組成,部門下有組別,而每個組別還可能有不同的團隊。企...

鐵人賽 Mobile Development DAY 19

技術 113/19 - 觀察者模式(Observer)- Kotlin

介紹 Kotlin 也有內建觀察模式,只要使用Delegates.observable就行,但是抽象類別沒有初始值的關係,所以不能直接用 觀察者模式實作 因為...

鐵人賽 JavaScript DAY 18

技術 [Day 18] 命名空間化模式

今天要介紹的是命名空間化模式🧐 什麼是命名空間 《JavaScript 設計模式學習手冊 第二版》作者 Addy Osmani 在書中敘述命名空間(names...

鐵人賽 Software Development DAY 18
前端也想學設計模式 系列 第 18

技術 Day 18 - Iterator 反覆器

反覆器讓我們取得聚合中的所有元素而不必暴露內部的實作細節。 生活案例 假設你擁有很多電子書,但每本書的格式都不同,有些是 PDF,有些是 txt 檔,有些是網路...

鐵人賽 Mobile Development DAY 18

技術 113/18 - 觀察者模式(Observer)- Java

介紹 Android 開發者肯定對觀察者模式不陌生,從早期的 EventBus 到後期的 RxJava,都是觀察者模式的應用 開發上要注意的是在生命週期開始的時...

鐵人賽 Software Development DAY 17
前端也想學設計模式 系列 第 17

技術 Day 17 - Template Method 樣板方法

樣板方法提供一個演算法模板,讓子類別在相同的步驟中實踐不同的實作細節。 生活範例 以料理為例,每道菜使用的食材、烹煮方式和擺盤風格各不相同,但都會經歷三個主要步...

鐵人賽 JavaScript DAY 17

技術 [Day 17] Promise 模式

今天要介紹的是 Promise 模式,在前端應用中,有很多需要進行非同步處理的場景,最常見的就是向後端發送 API 請求以取得資料,而這種發送請求的任務因為通...

鐵人賽 Software Development DAY 16
前端也想學設計模式 系列 第 16

技術 Day 16 - Chain of Responsibility 責任鏈

將請求的處理程序分成多個處理器,並讓每個處理器決定如何處理請求。 生活案例 想像蘋果工廠的流水線上有一系列工作站,分別負責清洗、選別和包裝。每個工作站會依序處理...

鐵人賽 JavaScript DAY 16

技術 [Day 16] MVC 模式

今天要介紹的是 MVC 模式,這和之前介紹的模式有點不同,在 GoF 書中,他們認為沒有將 MVC 稱為設計模式,而是視為一組用來建構 UI 的類別,他們認為...

鐵人賽 Mobile Development DAY 17

技術 113/17 - 橋接模式(Bridge)- Kotlin

介紹 橋接模式在 Kotlin 中並沒有語法糖的寫法,所以跟 Java 的寫法差不多 假如有兩個抽象類別會員和支付 會員(Member) 金會員(Gold)...

鐵人賽 Mobile Development DAY 16

技術 113/16 - 橋接模式(Bridge)- Java

介紹 讀完後的理解,橋接模式是把兩個抽象類別橋接起來,這樣就可以避免一直繼承 假如有兩個抽象類別會員和支付 會員(Member) 金會員(Gold) 銀會員...

鐵人賽 JavaScript DAY 15

技術 [Day 15] Proxy 模式

今天要介紹的是 Proxy 模式,這也是 GoF 在書中提及的設計模式之一,屬於結構型的設計模式,不過《JavaScript 設計模式學習手冊 第二版》這本書...

鐵人賽 Software Development DAY 15
前端也想學設計模式 系列 第 15

技術 Day 15 - Builder 建造者

建造者模式藉由將物件的建構流程和目標對象分離,讓物件的建構過程更有彈性。 生活案例 一間汽車製造工廠生產著各式各樣的的汽車,每款汽車都由不同的零件組成,例如引擎...

鐵人賽 Mobile Development DAY 15

技術 113/15 - 裝飾模式(Decorator)- Kotlin

介紹 Kotlin 版的裝飾模式跟 Java 版差別在可以用by這樣就能用委託的方式來實作 裝飾模式實作 建立粉絲介面 interface Fans {...

鐵人賽 JavaScript DAY 14

技術 [Day 14] Command 模式

今天要介紹的是 Command 模式,這是 GoF 定義的行為型模式之一。 情境 開發複雜應用程式時,開發者會需要一個靈活的架構來處理各種操作或功能,這些操作...

鐵人賽 Software Development DAY 14
前端也想學設計模式 系列 第 14

技術 Day 14 - Prototype 原型

原型模式通過讓物件提供複製方法,讓使用者能夠輕鬆複製物件。 生活案例 假設你是世界名畫「蒙娜麗莎的微笑」的收藏家。你經常收到美術館的來信,邀請展出這幅畫作。由於...

鐵人賽 Mobile Development DAY 14

技術 113/14 - 裝飾模式(Decorator)- Java

介紹 裝飾模式讀完後,最好的理解就是稱號的概念 例如我們有個會員系統 一開始加入時給的稱號是夥伴 會員花一千就會拿到很油稱號,變成很油夥伴 會員再花一萬就...

鐵人賽 Software Development DAY 13
前端也想學設計模式 系列 第 13

技術 Day 13 - Adapter 轉接器

轉接器模式允許你在不修改現有程式碼的情況下轉換類別的介面,讓原本互不相容的兩個類別合作無間。 生活案例 出國旅遊時,當地的插座和電壓常常與台灣不同,因此經常需要...

鐵人賽 JavaScript DAY 13

技術 [Day 13] Mediator 模式

今天要介紹的是 Mediator 模式,屬於 GoF 定義的行為型模式之一。 情境 在複雜的前端應用程式中,當模組或元件逐漸增加,各元件間的互動會變得更複雜,...

鐵人賽 Mobile Development DAY 13

技術 113/13 - 轉接器模式(Adapter)- Kotlin

介紹 Kotlin 沒有內建轉接器模式,所以沒有很甜的寫法 情境就跟昨天一樣,假如我有兩個會員系統 家樂福會員:有會員等級功能 全家會員:有會員年齡功能 今...

鐵人賽 JavaScript DAY 12

技術 [Day 12] Publish/Subscribe 模式

延續昨天提到的 Observer 模式,今天要介紹的是與 Observer 十分相似的延伸版,即 Publish/Subscribe 模式。GoF 一書中提到...

鐵人賽 Software Development DAY 12
前端也想學設計模式 系列 第 12

技術 Day 12 - Facade 表象

表象模式將複雜的系統包裝成簡單的介面,使系統更容易使用。 生活案例 身為一個出遊靠朋友、吃飯跟著走的超級懶人,安排旅行是一件極為痛苦的事。比起花時間找景點,我更...

鐵人賽 Mobile Development DAY 12

技術 113/12 - 轉接器模式(Adapter)- Java

介紹 轉接器模式在 Android 開發一定會知道,因為做列表一定會用到,但有其他的情況下會用到 Adapter 嗎? 假如我有兩個會員系統 家樂福會員:有會...

鐵人賽 Mobile Development DAY 11

技術 113/11 - 合成模式(Composite)- Kotlin

介紹 昨天太趕,跟本沒時間好好理解 合成模式由三個部件組成 Component:抽象層,提供介面定義行為 Composite:樹支,擁有樹葉 Leaf:樹葉,...

鐵人賽 JavaScript DAY 11

技術 [Day 11] Observer 模式

今天要介紹的是 Observer 模式,這是 Gof 提出的模式之一,屬於行為型設計模式,這也是目前為止我覺得可以延伸最多應用案例的模式~ 情境 在一個應用程...

鐵人賽 Software Development DAY 11
前端也想學設計模式 系列 第 11

技術 Day 11 - Command 命令

命令模式將請求的行為封裝成物件,發送請求的物件只需要依賴於命令介面而不需要知道背後的實作細節。 生活案例 想像你在得來速點餐,櫃檯人員透過點餐機記下餐點,點餐機...

技術 B3 中間人架構:從三個繪圖系統看分離關注點的重要性

為什麼需要模組化結構? 這個話題我跟 AI 討論很久,就老實跟大家說吧,文章順序考慮很久,砍了又改、改了又砍。那麼,還是先把架構講清楚吧! 首先,我不想這變成一...

鐵人賽 JavaScript DAY 10

技術 [Day 10] Flyweight 模式

今天要介紹的是 Flyweight 模式,這也是 GoF 提出的模式之一。 情境 當開發者正在開發應用程式時,發現需要建立大量物件,例如大量視覺元素物件、ic...

鐵人賽 Software Development DAY 10
前端也想學設計模式 系列 第 10

技術 Day 10 - Singleton 單例

單例模式可以建立一個獨一無二的類別實例,並讓整個應用程式存取內部的狀態和資源。 生活案例 現在很多網站都提供深色模式,來符合使用者的視覺習慣。通常這樣的設定只會...

鐵人賽 JavaScript DAY 9

技術 [Day 09] Decorator 模式

今天要介紹的是 Decorator 模式,這也是 GoF 提出的模式之一。 情境 在軟體開發時,有時會遇到一個類別需要在執行階段時增加額外的功能,但同時又希望...