策略模式:
它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化。不会影响到使用算法的客户
以商店打折为例子:
商店没有做活动,那么收费就是正常收费
商店如果进行活动,那么就会有优惠方式;比如是打折,或者是满300返100等等
这些都是算法,算法本省就是一种策略,他的特点就是完成的工作相同,只是实现不同;所以策略模式就是讲这些算法封装起来
1.策略模式
UML图形:
代码实现:
namespace 策略模式
{
//抽象类---收费方式类(不同收费方式对应的价格的抽象)
public abstract class CashSuper
{
//抽象方法
public abstract double acceptCash(double money);
}
}
namespace 策略模式
{
//价格正常类(子类)(对价格正常的抽象,继承于收费方式---正常收费方式)
class CashNormal:CashSuper
{
//对抽象方法acceptCash方法重写
public override double acceptCash(double money)
{
return money;
}
}
}
namespace 策略模式
{
//打折价格类(打折时候对应的不同价格子类---折扣收费方式)
class CashRebate:CashSuper