一:策略模式目的,解决什么问题。
二:策略模式类图。
这个模式涉及到三个角色:
● 环境(Context)角色:持有一个Strategy的引用。
● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
● 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。
三:策略模式代码示列。
public interface Opreter {
public void doSome();
}
2.实现 具体策略(ConcreteStrategy)角色 :
public class Ado implements Opreter {
public void doSome() {
System.out.println("a do something!");
}
}
public class Bdo implements Opreter {
public void doSome() {
System.out.print("b do something");
}
}
public class Cdo implements Opreter {
public void doSome() {
System.out.print("c do somethings");
}
}
3.环境类,持有一个Strategy的引用
public class Context {
Opreter opreter;
public Opreter getOpreter() {
returnopreter;
}
public void setOpreter(Opreteropreter) {
this.opreter =opreter;
}
public void doS(){
opreter.doSome();
}
}
4.客户端类,应用。
public class Main {
public staticvoid main(String[] args) {
Context context=new Context();
context.setOpreter(new Ado());
context.doS();
}
}