1.定义
定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。
2.UML
3.代码
public abstract class Strategy {
abstract void doSomething();
}
public class ConcreteStrategy1 extends Strategy {
@Override
void doSomething() {
}
}
public class ConcreteStrategy2 extends Strategy {
@Override
void doSomething() {
}
}
public class Context {
private Strategy mStrategy;
public Context(Strategy strategy) {
mStrategy = strategy;
}
public void doAnything() {
mStrategy.doSomething();
}
}
public class Client {
public static void main(String[] args) {
Context context = new Context(new ConcreteStrategy1());
context.doAnything();
context = new Context(new ConcreteStrategy2());
context.doAnything();
}
}