“策略模式”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
| 第40行: | 第40行: | ||
} | } | ||
| + | } | ||
| + | </syntaxhighlight>Context.java<syntaxhighlight lang="java"> | ||
| + | /** | ||
| + | * 锦囊 | ||
| + | */ | ||
| + | public class Context { | ||
| + | |||
| + | |||
| + | private IStrategy strategy; | ||
| + | |||
| + | public Context(IStrategy strategy) { | ||
| + | this.strategy = strategy; | ||
| + | } | ||
| + | |||
| + | public void operate() { | ||
| + | this.strategy.operate(); | ||
| + | } | ||
| + | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2024年7月9日 (二) 12:24的版本
IStrategy.java
public interface IStrategy {
public void operate();
}
BackDoor.java
/**
* 乔国老开后门
*/
public class BackDoor implements IStrategy {
@Override
public void operate() {
System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
GivenGreenLight.java
/**
* 吴国太开绿灯
*/
public class GivenGreenLight implements IStrategy {
@Override
public void operate() {
System.out.println("求吴国太开绿灯,放行!");
}
}
BlockEnemy.java
/**
* 孙夫人断后
*/
public class BlockEnemy implements IStrategy {
@Override
public void operate() {
System.out.println("孙夫人断后,挡住追兵");
}
}
Context.java
/**
* 锦囊
*/
public class Context {
private IStrategy strategy;
public Context(IStrategy strategy) {
this.strategy = strategy;
}
public void operate() {
this.strategy.operate();
}
}