
「策略模式」簡單長這樣
工程師的思維,存在於程式之外。它是一種面對複雜問題的方式:拆解混亂、界定邊界、為變動預留空間。設計模式,則是前人將常見問題整理成可重複使用的解法。
這套思維架構,同樣可以用來觀察現實世界。一旦看見這些結構,複雜度會明顯下降。
本文首先介紹兩個核心概念,重新拆解日常世界:介面(Interface)與設計模式中的策略模式(Strategy Pattern)。之後有機會再一一介紹其他設計模式。
一、 介面(Interface):為不確定建立穩定預期
在程式設計中,介面是一種規格。它定義了行為的邊界,卻隱藏了內部的複雜細節。換一種說法,介面是一種穩定的預期。當某個物件符合某個介面,你無須理解它的內部結構,就能預期它會完成特定行為。
抽象能力讓系統得以協作與擴充。這種結構並不只存在於軟體世界。在複雜環境中,清楚的邊界會顯著降低理解成本。
- 生物界的介面:若有個介面定義了「飛」這個行為,那麼無論是鴿子、老鷹還是烏鴉,只要它們「實作」了這個介面,我們就能穩定預期它們具備飛行的能力。
- 硬體界的介面:以 USB 插槽為例,它們定義了物理規格。Type-A、Type-B、Type-C 便是不同的介面規範。當一支手機聲明它採用 Type-C 介面時,它向使用者傳達的是一種承諾:規格一致即可連接與供電。
背後的電路設計如何變化,對使用者而言並不重要。規格本身,已經消除了多數不確定性。
二、 從物件到價值:抽象所帶來的自由
有一句話常被引用:人們購買電鑽,是為了牆上的洞。這句話完成了一次關鍵轉換,視角從物件移動到功能。當「打洞」被理解為一種功能介面,電鑽便只是眾多實作方式之一。
只要能完成同樣功能,工具便具有替代空間。這種抽象能力,使人得以跳脫形式,專注於結構。需求保持穩定,實現方式卻可以演化。
在商業與技術領域,許多變革正來自這樣的轉換:對價值進行抽象,讓實作方式保持開放。當功能被清楚界定,選擇也隨之增加。
例如:共享經濟
共享經濟的興起,需求沒有改變。變化發生在供給方式與媒合機制。
三、 策略模式(Strategy Pattern):模組化的藝術
若介面界定了「可以做什麼」,策略模式則處理「如何實現」。它的核心做法,是將行為封裝為獨立模組,使其能在不同情境中被替換。對於調用功能的系統主體而言,介面不變,內部的執行策略卻能隨意切換。
功能維持一致,執行方式得以調整。在軟體架構中,這種設計讓系統避免僵化。同一項功能,可以根據需求選擇不同演算法或流程。日常生活裡,也能看到類似結構。
例如:飲料店的決策邏輯:模組化生產
如果菜單把所有組合(紅茶無糖、紅茶微糖...)都列出來,會是場災難。聰明的飲料店將其拆解為三個介面:茶底、甜度、配料。每個介面下都有不同策略,例如:甜度是一組策略集合,系統只需在其中選擇。這種「低耦合」設計,讓複雜的客製化變得極易管理。
四、人生作為長期運行的系統
將視角轉回個人,策略思維仍然適用。若把人生理解為一個長期運行的系統,
行為的彈性顯得格外重要。不同階段,環境與資源條件自然改變。有時適合專注能力累積;有時需要提升資源穩定度;有時則調整方向,擴大影響範圍。很多困惑來自策略錯置,而不是努力不足。核心價值與長期目標提供連續性。行動方式則隨情境調整。
這種切換是一種結構性的適應。在變動環境中,系統依然維持運行。成熟感往往來自這樣的平衡:邊界清晰,方法多元。
結語:在穩定中保留彈性
工程思維帶來的啟發,在於對系統結構的敏感。當邊界被明確定義,當變動被封裝於可替換的模組,系統變得可理解,行動變得可調整。替換策略,往往比推翻整個系統來得有效。
如果這篇文字有陪到你,歡迎追蹤我,或透過下方贊助請我喝杯珍奶。你的支持,會讓這份「版本更新」的勇氣繼續寫下去。
















