策略模式

来源:互联网 发布:苹果笔记本mac游戏 编辑:程序博客网 时间:2024/06/05 01:05

对于一种问题有多种解法,我们不是使用的if else而是把这些解法抽出了一个公共的接口,使用不同的策略类来实现这个公共的接口,再将不同的策略类的引用传入到一个策略类的容器,这个容器对外提供一个统一的方法来给外界使用。

/** * 策略模式公共接口 *  */public interface StrategyInterface {public void method();}

/** * 策略实现类1 */public class StrategyClass1 implements StrategyInterface {@Overridepublic void method() {System.out.println("StrategyClass1");}}

/** * 策略实现类2 */public class StrategyClass2 implements StrategyInterface {@Overridepublic void method() {System.out.println("StrategyClass2");}}

/** * 策略实现类3 *  */public class StrategyClass3 implements StrategyInterface {@Overridepublic void method() {System.out.println("StrategyClass3");}}

/** * 策略类的包装类 * */public class Container {private StrategyInterface mStrategyInterface;public Container(StrategyInterface strategyInterface){mStrategyInterface = strategyInterface;}public void method(){mStrategyInterface.method();}}

/** * 策略模式的使用 * */public class Main {public static void main(String[] args){//使用策略1Container context1 = new Container(new StrategyClass1());context1.method();//使用策略2Container context2 = new Container(new StrategyClass2());context2.method();//使用策略3Container context3 = new Container(new StrategyClass3());context3.method();}}


0 0
原创粉丝点击