“策略模式”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第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();
	}
	
}