策略模式+简单工厂+反射

策略模式:

它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化。不会影响到使用算法的客户

以商店打折为例子:

商店没有做活动,那么收费就是正常收费

商店如果进行活动,那么就会有优惠方式;比如是打折,或者是满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 
  
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值