策略模式的目的是定义一系列算法,把它们封装起来,并且使它们可以相互替换.
本模式使得算法可以独立于它的客户而变话.
-
-
-
-
-
-
public interface Strategy {
-
public void algorithmInterface();
- }
-
-
-
-
-
-
-
public class ConcreteStrategyA implements Strategy {
-
public void algorithmInterface() {
-
System.out.println("Called ConcreteStrategyA.algorithmInterface()");
- }
- }
-
-
-
-
-
-
-
public class ConcreteStrategyB implements Strategy {
-
public void algorithmInterface() {
-
System.out.println("Called ConcreteStrategyB.algorithmInterface()");
- }
- }
-
-
-
-
-
-
-
public class ConcreteStrategyC implements Strategy {
-
public void algorithmInterface() {
-
System.out.println("Called ConcreteStrategyC.algorithmInterface()");
- }
- }
-
-
-
-
-
-
-
public class Context {
- Strategy strategy;
-
-
public Context(Strategy strategy) {
-
this.strategy = strategy;
- }
-
-
public void contextInterface() {
- strategy.algorithmInterface();
- }
- }
-
-
-
-
-
-
-
public class Client {
-
public static void Main(String[] args) {
-
Context c = new Context(new ConcreteStrategyA());
- c.contextInterface();
-
-
Context d = new Context(new ConcreteStrategyB());
- d.contextInterface();
-
-
Context e = new Context(new ConcreteStrategyC());
- e.contextInterface();
- }
- }

- 大小: 9.6 KB