设计模式之策略模式

xiaoxiao2021-02-28  110

概述:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化

角色:

Strategy 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法ConcreteStrategy 以Strategy接口实现某具体算法Context 用一个ConcreteStrategy对象来配置。 维护一个对Strategy对象的引用。可定义一个接口来让Stategy访问它的数据

类图:

实现: 算法公共接口

/** * 模拟算法 */ interface MathCopy { public void method(); }

算法实现:

public class Add implements MathCopy { @Override public void method() { System.out.println("做加法"); } } public class Mins implements MathCopy { @Override public void method() { System.out.println("做减法"); } }

Context

public class Context { MathCopy mathCopy; public Context(MathCopy mathCopy){ this.mathCopy = mathCopy; } public void doIt(){ this.mathCopy.method(); } }

测试

public class testStrategy { public static void main(String[] args) { MathCopy m = new Mins(); Context context = new Context(m); context.doIt(); } }

打印: 做减法

转载请注明原文地址: https://www.6miu.com/read-26693.html

最新回复(0)