[Day 05] 走訪器模式,建造者模式,責任鏈模式,解譯器模式


走訪器模式

走訪器模式是GoF提出的設計模式中已經較少被使用了,因為隨著程式語言的進步,已經內建為語言的特色之一。
提供方法走訪集合內的物件,走訪過程不需知道內部的結構
例如程式語言內建的foreach指令,即可以走訪集合內的物件,而foreach底層就是走訪器。
先建一個簡單的List,這個List內建一個實作走訪器介面的簡單走訪器,這個簡單List要有回傳簡單走訪器的方法,如此其他程式才能利用簡單走訪器來訪問List的內容。

JS中走訪的方法

  • forEach
  • for in
  • map
  • every
  • $(selecter).each [jQuery]

建造者模式

將一個由各種組件組合的複雜產品建造過程封裝。
建造者模式其實就像再隔了一層指揮者的抽象工廠類別,機器人由外型、動力、武器所組成,鋼彈製造者就像抽象工廠的實體一樣,可以生產出機器人所有的組件,但建造者模式我們會用指揮者來控制小物件如何組裝成一個大物件的順序。

責任鏈模式

讓不同物件能處理同一個請求
責任鏈模式可以用於處理簽核流程,像是學生要請假,兩天以內直接由班導師同意,但2~5天就需要再給系主任簽,然後超過5天就要由校長批准。
將提出申請這個動作封裝成一個請求類別,處理請求的物件抽出來作為處理者介面。

解譯器模式

定義一個語言及其文法,使用解譯器來表示這個語言的表述
將有一定規則的文字依規定將表達的意思解釋出來,簡單來說就是翻譯工具。
解譯器將程式碼一行一行翻譯直接執行,每次都要先轉成另一種語言再執行程式,他不會一次將整隻程式轉譯出來,所以執行速度會較為緩慢。

#寫作松 #設計模式







你可能感興趣的文章

路由系統route 路由設計routing

路由系統route 路由設計routing

用 Paged.js 做出適合印成 PDF 的 HTML 網頁

用 Paged.js 做出適合印成 PDF 的 HTML 網頁

Leetcode JS 2627. Debounce

Leetcode JS 2627. Debounce






留言討論