iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

也該是時候學學 Design Pattern 了 系列

隨著經驗的累積,對於學習基礎知識的慾望逐步增加,而 Design Pattern 就是這次的目標,藉由鐵人賽高強度的時間壓力,讓自己能夠好好學習這項新知,同時,為往後學習 System Design 鋪路。

本次的主語言仍然是採用 JS,但會用 Java 輔助學習(相關案例、語言相容性較佳),讓自己使用 Java 理解的過程中,將相關概念轉換成 JS。

鐵人鍊成 | 共 31 篇文章 | 32 人訂閱 訂閱系列文 RSS系列文 團隊Outcome First 2.0
DAY 11

Day 11: Structural patterns - Adapter

目的 如何在不修改物件的情況上,使用中間層(Adapter)後,能轉換跟其他物件聯繫,同時原有功能不受影響。 說明 這模式在現實最典型的應用是充電器:使用 11...

DAY 12

Day 12: Structural patterns - Bridge

目的 將程式分離成服務與對外窗口(介面),當外界要使用時,呼叫窗口即可,服務的一切不用知道。 說明 起因是這樣子,假如現在有一個平台,且支援三個服務,最直覺的設...

DAY 13

Day 13: Structural patterns - Composite

目的 將程式的組成轉換成有上下階級的結構(或稱:樹狀結構),方便使用者不論從哪個節點、葉子使用,都可以有相似的執行。 說明 假入要撰寫一個程式,本身是參考現實世...

DAY 14

Day 14: Structural patterns - Decorator

目的 使用包覆(Wrapper)的方式,可以動態地給物件增添新的功能,或是重新定義既有的功能,達到擴充目的。 說明 當原本的程式需要配合需求新增功能,新功能之間...

DAY 15

Day 15: Structural patterns - Facade

目的 建立一個對外的窗口(介面),負責提供特定功能,而功能背後如何運作?與哪些物件有所關聯?通通交給對外窗口來實踐。 說明 讓複雜的系統有一個對外的窗口,負責發...

DAY 16

Day 16: Structural patterns - Flyweight

目的 當有大量重複物件時,抽離物件相同部分的資料,並用專屬的工廠管理,好減少重複的資料,減少記憶體的消耗,避免出現剩餘記憶體不足導致程式 Crash。 說明 現...

DAY 17

Day 17: Structural patterns - Proxy

目的 將實際執行的服務遮蔽,取而代之的,建立一個代理人負責對外窗口的身份,以及對內與該服務溝通。 說明 我們可能會依照情況的需求,必須將實際運作服務的物件進行遮...

DAY 18

Day 18: Behavioral patterns - Chain of Responsibility

目的 當一個行為需要經過多道步驟時,可以將步驟串在一起。 說明 該模式常見於兩種情境: 行為不一定一個步驟就執行完畢,可能第一個步驟的「權限」不夠大,需要依賴...

DAY 19

Day 19: Behavioral patterns - Command

目的 將行為拆成請求與執行兩個區塊,請求的部分獨自封裝成物件,執行的部分則交由專門負責執行的物件。負責執行的物件除了儲存等待執行的請求,還可以在執行前取消特定請...

DAY 20

Day 20: Behavioral patterns - Interpreter

目的 取得一段訊息後,解析、轉譯成具有特定含義的訊息。 說明 簡單來說,就是訊息的轉換器。 當有分析訊息的需求,其組成是具有邏輯可判斷,判斷後的訊息可被理解、執...