赞
踩
策略模式定义了一系列算法,并将每个算法封装起来,是它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式食欲对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
在策略模式中有以下角色:
(策略模式其实很想结构型模式中的桥接模式),其在环境类中聚合抽象策略类。
/** * Strategy类是抽象策略类 */ public interface Strategy { void show(); } /** * StrategyA、StrategyB、StrategyC类是具体策略类 */ public class StrategyA implements Strategy{ @Override public void show() { System.out.println("买一送一"); } } public class StrategyB implements Strategy{ @Override public void show() { System.out.println("满200减50"); } } public class StrategyC implements Strategy{ @Override public void show() { System.out.println("有赠品"); } } /** * SalesMan类是环境类 */ public class SalesMan { private Strategy strategy; public SalesMan(Strategy strategy) { this.strategy = strategy; } public void salesManShow(){ strategy.show(); } }
优点:
缺点:
文章内容为个人学习总结,如有错误望指正。
参考链接https://www.bilibili.com/video/BV1Np4y1z7BU
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。