Home
Posts
Categories
Series
Tags
About
設計模式-策略模式
postedOn: 2026-4-12   updatedOn: 2026-4-12   includedIn: 程式
wordsCount: 317   readingTime: 1 min   viewers:

Strategy-策略模式

分類

行為模式-Behavioral Patterns

主要角色

Strategy (策略介面)、Concrete Strategy (具體策略)、Context (環境/上下文)

目的

定義一系列演算法並將其封裝,讓演算法之間可以互相替換,使演算法的變化不影響使用者。

如何互動

Context 持有一個 Strategy 的引用,在執行期間可以根據選擇注入不同的 Concrete Strategy,並委託該策略執行具體的業務邏輯。

GitHub練習

https://github.com/hanksky12/DesignPatterns/blob/main/internal/strategy/strategy.go

實務上

在開發中,為測試機器人玩家如果採用不同的玩法,會如何對遊戲得分,把這些邏輯用if else分散在程式內,和其他主要互動步驟混在一起, 這時可把關於玩法策略的部分,抽象出來封裝,再用介面注入,從一開始就可以簡單的選擇單一策略後,決定整個機器人的互動方式,程式碼就乾淨很多