iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

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

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

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

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

Day 21: Behavioral patterns - Iterator

目的 了解 forEach() 的來由。 說明 簡單來說,實作任意資料結構的 forEach(),最常見的莫過於 Array、List 等,其他像是 Linke...

DAY 22

Day 22: Behavioral patterns - Mediator

目的 當系統內的物件們各自溝通的情況日益嚴重時,建立一個負責溝通的集中所,讓元件們不在「直接」,而是「間接」與他者溝通。 說明 通常在程式剛開發的時候,為了快速...

DAY 23

Day 23: Behavioral patterns - Memento

目的 當系統需要提供「復原功能」、「取消復原功能」、「回復到上一個步驟」等需要將這些資料暫時存放在記憶體內,可以採納的設計模式。 說明 要思考的是,在確保資料不...

DAY 24

Day 24: Behavioral patterns - Observer

目的 當需要多個物件同時「監聽」一個相同物件,一旦該物件發生變化時,監聽的物件們將自動採取相對應的處理。 說明 通常是發生在單個物件的狀態變化發生時,其他物件將...

DAY 25

Day 25: Behavioral patterns - State

目的 如果物件內的方法,會依據物件內的狀態,使用多個 if - else if - else 或 switch case 來判定不同狀態下該執行的內容時,可以將...

DAY 26

Day 26: Behavioral patterns - Strategy

目的 如果物件本身有負責計算的方法,且該方法依照給予的參數,會有不同的計算結果,那可以將計算的部分封裝成獨立的物件,彼此可以互相切換,同時不影響原有的功能。 說...

DAY 27

Day 27: Behavioral patterns - Template Method

目的 親代物件負責架構,實作細節則交給繼承的子代物件負責。 說明 試想一個情境,物件內某個方法的實作內容有各種可能,如果沒有思考,可能會依照實作內容的不同,建立...

DAY 28

Day 28: Behavioral patterns - Visitor

目的 當一群相似結構的物件們,在執行相同方法時卻有著不同實作內容,那可以將方法封裝成獨立物件。當需要增加新的方法時,不用改變物件的結構,只需要增加封裝的方法就能...

DAY 29

Day 29: 23 + 1 個模式的總結

Creational patterns - Summary 主旨 「物件導向設計模式」定義為: 將物件具現化的過程抽下樣話地加以萃取,使系統能獨立於物件的建立...

DAY 30

Day 30: 關於 Design Pattern,來點心理測驗吧

緣由 現在對模式有個初步的了解,想試著寫出「設計模式」的心理測驗。 測驗開始 問題區 問題 1 你這陣子開發遇到問題了嗎? YES -> 問題 2...