設計模式是門有趣且實用的學問,其中包含了許多良好的寫作習慣與設計思維,能夠幫助開發者建立更有系統且易於維護的程式。由於前端的世界裡相關的學習資源較少,因此我希望藉由分享自己的學習心得,讓更多人認識這項美好的技術:)
代理模式透過包裝物件來管理外部對物件的操作行為。 生活案例 每名偶像都有一位經紀人,負責管理其工作行程。廠商會透過經紀人洽談合作機會,並透過經紀人取得回覆。廠商...
中介者模式透過獨立的物件來協調物件之間的互動行為,避免它們相互依賴。 生活範例 想像你在一間公司,各部門都透過專案管理組來進行溝通。每當某個部門有需求時,都會聯...
享元模式透過重複使用物件來減少資料量並節省記憶體。 生活範例 圖書館有很多藏書,同一本書可能有多本館藏,以滿足讀者需求。假設每次購書都要將書本的基本資料輸入圖書...
橋接模式通過將物件的抽象部分與實現部分分離,使系統更具彈性。 生活範例 隨著行動支付方式日益多樣化,想像一間行動支付整合商的服務,支援像 Apple Pay、L...
狀態模式使用狀態物件來表示物件在不同狀態下的行為,並通過改變狀態物件來改變行為。 生活範例 街道中的紅綠燈非常適合用來說明狀態模式的概念。紅綠燈有三種狀態:紅燈...
備忘錄模式能讓物件在不破壞封裝的情況下儲存與回復狀態。 生活範例 備忘錄模式的一個經典應用場景是歷史紀錄。這類紀錄在我們的日常生活中隨處可見,例如 Word、P...
方法鏈可以透過一連串的方法呼叫來取得計算結果,而無需將中間結果存為變數。 生活範例 想像草莓果醬的生產線,上面包含幾個主要關卡:清洗、烹煮和裝瓶,經過一步步的處...
解釋器模式可以透過簡單語言來執行常見任務。 生活範例 一份樂譜記載著一段旋律,譜上的音符代表著音高,休止符代表著暫停,音節的長短則由不同的符號來表示。樂譜上的符...
訪問者模式允許在不修改物件類別的情況下,對物件集合中的元素施加新的操作。 生活範例 麥當勞的餐點有很多種點法,比如說一個麥香雞漢堡,可以單點、搭配薯條和可樂做成...
持續一個月的努力,終於來到了鐵人賽的最後一天。我大約在兩個月前萌生了參加鐵人賽的念頭,但當時其實猶豫了很久,一方面是擔心無法兼顧工作與寫作,另一方面也怕無法產出...