Java设计模式--策略模式
来源:互联网 发布:com域名不备案能解析吗 编辑:程序博客网 时间:2024/04/20 03:23
1、策略模式:属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
2、策略模式涉及的三个角色:
①环境(容器context)角色:持有Strategy的引用;
②抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口;
③具体策略(ConcreteStrategy)角色:包装了相关算法和行为。
3、使用场景:假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复·杂。比如,本网站可能对所有的高级会员提供每本20%的促销折扣;对中级会员提供每本10%的促销折扣;对初级会员没有折扣。
根据描述,折扣是根据以下的几个算法中的一个进行的:
算法一:对初级会员没有折扣。
算法二:对中级会员提供10%的促销折扣。
算法三:对高级会员提供20%的促销折扣。
使用策略模式来实现的结构图如下:
0 0
- Java设计模式 -- 策略模式
- java设计模式-----策略模式
- java 设计模式-策略模式
- java设计模式--策略模式
- java设计模式-策略模式
- java设计模式-策略模式
- java设计模式--策略模式
- java设计模式---策略模式
- java设计模式---策略模式
- java设计模式---策略模式
- 【Java设计模式】策略模式
- java设计模式--策略模式
- Java设计模式----策略模式
- Java设计模式------------策略模式
- Java设计模式 - 策略模式
- java设计模式---策略模式
- java设计模式-策略模式
- java设计模式----策略模式
- 对集合类AbstractCollection借口toString方法的this关键字理解
- 3Sum Closest(离目标值最近的三数之和)
- 互联网服务端技术——如何学(上)
- 匿名函数
- ActiveMQ将消息持久化到数据库
- Java设计模式--策略模式
- PE 290【数位DP】
- DWR入门教程
- OSv—Optimizing the Operating System for Virtual Machines 5
- Python 进阶 —— warnings
- setAccessible(true)
- 吊炸天的代码头部注释
- 过滤器实现页面静态化
- nginx运行php"No input file specified"错误的解决方法