文章

单例模式

策略模式是一种行为型模式,它定义了算法族,分别封装起来,让它们之间可以互相替换。策略模式可以让算法的变化独立于使用算法的客户端。在游戏开发中,策略模式常用于实现 AI 行为、战斗系统等。

例如,在一个回合制的战斗游戏中,玩家可以选择攻击、防御或逃跑。可以使用策略模式来实现不同的行为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public interface IBehaviorStrategy {
    void ExecuteBehavior();
}

public class AttackStrategy : IBehaviorStrategy {
    public void ExecuteBehavior(){
        // 攻击逻辑
    }
}

public class DefendStrategy : IBehaviorStrategy {
    public void ExecuteBehavior() {
        // 防御逻辑
    }
}
    
public class EscapeStrategy : IBehaviorStrategy {
    public void ExecuteBehavior() {
        // 逃跑逻辑
    }
}
    
public class Battle {
    private IBehaviorStrategy behaviorStrategy;

    public Battle(IBehaviorStrategy behaviorStrategy) {
        this.behaviorStrategy = behaviorStrategy;
    }

    public void ExecuteBehavior() {
        behaviorStrategy.ExecuteBehavior();
    }
}

    // 调用代码
    Battle battle = new Battle(new AttackStrategy());
    battle.ExecuteBehavior();

下面是一些高级用法

本文由作者按照 CC BY 4.0 进行授权