package a.b.c.mytest;
/**
* 策略模式
* 抽象策略角色
* 具体策略角色(实现具体策略)
* 环境角色(持有策略类,共调用)
* @author chenhao02
*
*/
public class TestStartegyPattern {
public static void main(String[] args) {
String stategyConf = "a.b.c.mytest.StategyB";
Context c;
try {
c = new Context((Stategy) Class.forName(stategyConf).newInstance());
c.runStategy();
} catch (Exception e) {
}
}
}
/**
* 环境角色
* @author chenhao02
*
*/
class Context{
private Stategy stategy;
public void runStategy(){
this.stategy.execute();
}
public Context(Stategy A){
this.stategy = A;
}
}
/**
* 抽象策略角色
* @author chenhao02
*
*/
abstract class Stategy{
public abstract void execute();
}
class StategyA extends Stategy{
@Override
public void execute() {
System.out.println("执行策略A");
}
}
class StategyB extends Stategy{
@Override
public void execute() {
System.out.println("执行策略B");
}
}
策略模式
最新推荐文章于 2024-08-14 10:00:00 发布