策略模式(算法)

策略模式

策略模式将可变的部分从程序中抽象成接口,在该接口下分别封装一系列算法实现

主要是针对一组算法,将每个算法封装到具体共同接口的独立的类中,从而使得它们可以相互替换,使得算法在不影响到客户端的情况下发生变化(定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化)

举例:

假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的高级会员提供每本20%的促销折扣;对中级会员提供每本10%的促销折扣;对初级会员没有折扣。

策略模式(算法)_第1张图片
image

client传入MemberStrategy对象到Price中,Price 调用quote().calePrice()

你可能感兴趣的:(策略模式(算法))