Java设计模式--策略模式
2016-04-27 10:27
204 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33801287/article/details/51259070
1、策略模式:属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
2、策略模式涉及的三个角色:
①环境(容器context)角色:持有Strategy的引用;
②抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口;
③具体策略(ConcreteStrategy)角色:包装了相关算法和行为。
3、使用场景:假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复·杂。比如,本网站可能对所有的高级会员提供每本20%的促销折扣;对中级会员提供每本10%的促销折扣;对初级会员没有折扣。
根据描述,折扣是根据以下的几个算法中的一个进行的:
算法一:对初级会员没有折扣。
算法二:对中级会员提供10%的促销折扣。
算法三:对高级会员提供20%的促销折扣。
使用策略模式来实现的结构图如下:
相关文章推荐
- java设计模式之 策略模式
- All About JAVA 关于设计模式中的“策略模式”
- java设计模式---策略模式
- [设计模式] - 策略模式(Java篇)
- java设计模式之策略模式
- OOP设计模式[JAVA]——01策略模式
- JAVA系列-设计模式-策略模式
- Java设计模式 Design Pattern:策略模式 Strategy Pattern
- 设计模式之三 --- 策略模式(Strategy Pattern) (java)
- JAVA设计模式---策略模式-2011-05-13
- Java设计模式十: 策略模式(Strategy)
- java设计模式---策略模式
- Java设计模式笔记之策略模式
- 初学者学Java设计模式(二)---------策略模式
- java设计模式之策略模式
- [设计模式] - 策略模式(Java篇)
- java设计模式之策略模式
- Java设计模式——策略模式
- java 设计模式学习笔记十五 strategy 策略设计模式
- java 设计模式 桥接模式和策略模式的区别