单例模式
策略模式是一种行为型模式,它定义了算法族,分别封装起来,让它们之间可以互相替换。策略模式可以让算法的变化独立于使用算法的客户端。在游戏开发中,策略模式常用于实现 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 进行授权