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


走訪器模式

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

JS中走訪的方法

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

建造者模式

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

責任鏈模式

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

解譯器模式

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

#寫作松 #設計模式





第 01 屆開發者寫作松是為期七天的活動,想要利用一周的時間來學習設計模式,正好有一本書叫做7天學會設計模式設計模式也可以這樣學,所以接下來這7天都會撰寫閱讀書摘,並且同時培養自己閱讀習慣

留言討論