重构全部下机职责链模式

BLL层

/// <summary>
        /// 职责链的封装
        /// </summary>
        /// <param name="Type"></param>
        /// <param name="SumTime"></param>
        /// <param name="listBasic"></param>
        /// <returns></returns>
        public int Chain(string Type, int SumTime, List<Entity.BasicInfo> listBasic)
        {
            //实例化职责链
            Handler hGen = new ConcreteGeneral();
            Handler hAdm = new ConcreteAdmin();
            //设置上下家
            hGen.GetSuccessor(hAdm);
            //调用方法,获得总金额
            int SumCostMoney = hGen.HandleRequest(Type, SumTime, listBasic);
            return SumCostMoney;
        }

新建两个类和一个修饰类。

abstract class Handler
    {
        protected Handler _successor;

        public void GetSuccessor(Handler successor)
        {
            this._successor = successor;
        }

        public abstract int HandleRequest(string type, long hour, List<Entity.BasicInfo> list);
    }
class ConcreteAdmin:Handler
    {
        public override int HandleRequest(string type, long hour, List<Entity.BasicInfo> list)
        {
            if (type == "会员")
            {
                return (int)hour * list[0].VipRate;
            }
            else if (_successor != null)
            {
                return _successor.HandleRequest(type, hour, list);
            }
            return 0;
        }
    }
class ConcreteGeneral:Handler
    {
        public override int HandleRequest(string type, long hour, List<Entity.BasicInfo> list)
        {

            if (type == "普通用户")
            {
                return (int)hour * list[0].Rate;
            }
            else if (_successor != null)
            {

                return _successor.HandleRequest(type, hour, list);
            }
            return 0;


        }
    }

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值