设计模式
(一)策略模式
简介:
关于策略模式,之前知道了一个大概,实际上没有使用过,今天通过一个demo来再次加深一下学习。
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式
在策略模式中,我们通过创建 **表示各种策略的对象 **和一个 **行为随着策略对象改变而改变的 context 对象 **。策略对象改变 context 对象的执行算法。
需要创建的类:
-
一个接口:用于约束
public interface Strategy{ public String doOperation(); }
-
多个策略类
public class Operation1 implements Strategy{ //策略1 @Override public String doOperation() { return "这是策略1"; } }
public class Operation2 implements Strategy{ //策略2 @Override public String doOperation() { return "这是策略2"; } }
-
一个context类,用于切换策略
public class Context { private Strategy strategy; public Context(Strategy strategy){ this.strategy = strategy; } //执行策略 public String executeStrategy(){ return strategy.doOperation(); } }
-
创建一个Demo 在 main 函数中演示一下:
public class StrategyPatternDemo { public static void main(String[] args) { //创建context 使用策略1,调用context中的执行策略方法 Context context = new Context(new Operation1()); System.out.println( context.executeStrategy() ); //创建context 使用策略2,调用context中的执行策略方法 context = new Context(new Operation2()); System.out.println( context.executeStrategy() ); } }
-
结果为:
这是策略1 这是策略2