机房-设计模式-职责链模式

前言:
接触到了机房收费系统之后,进一步的优化机房的代码,就用到了设计模式,职责链模式是很容易想到的一个,上下机的流程中,很容易就可以应用到
一、1.涉及到的逻辑
上机进行的判断
1.查询卡号密码是否存在
2.查询余额是否充足
3.查询卡号是否上机
4.上机成功
二、.职责链模式
这里写图片描述
handler类定义一个处理的接口
这里写图片描述
这里写图片描述
三、在上机中.如何应用

namespace BLL.上机职责链
{
 public abstract class handlerBLL
    {
        protected handlerBLL successor;
        //设置初始父类
        public void setSuccessor(handlerBLL successor)
        {
            this.successor = successor;
        }
        public abstract string handlerRequest(Entity.card card ,Entity.online line);
    } 
namespace BLL.上机职责链
{
    public class checkUserPwdBLL : handlerBLL
    {
        public override string handlerRequest(Entity.card card, Entity.online line)
        {
            Factory.allFactory cardnoFac = new Factory.allFactory();
            IDAL.studentOnIDAL cardnoIDAL = cardnoFac.checkCardno();
            List<card> list = cardnoIDAL.checkCardNo(card);
            if (0 < list.Count && "激活" == list[0].status)
            {
                return successor.handlerRequest(card, line);
            }
            else
            {
                if (0 < list.Count && "激活" != list[0].status)
                {
                    return "该用户未激活!";
                }
                else
                {
                    return "该用户不存在!";
                }
            }
        }
    }
}
namespace BLL.上机职责链
{
  public class checkCashBLL : handlerBLL
    {

        #region 判断余额是否充足
        //上机,判断余额是否充足
        public override string handlerRequest(Entity.card card ,online line )
        {
            Factory.allFactory databasicfac = new Factory.allFactory();
            IDAL.basicIDAL getbasicdataIDAL = databasicfac.getBasic();
            List<Entity.basic> basiclist = getbasicdataIDAL.getBasic();


            Factory.allFactory balancefac = new Factory.allFactory();
            IDAL.inqueryBalanceIDAL getbalanceIDAL = balancefac.inqueryCard();
            List<card> list = getbalanceIDAL.inquery(card);
            if (list[0].balance > basiclist[0].limitedCost)
            {
                return successor.handlerRequest(card ,line);
            }
            else
            {
                return "用户余额不足,请充值!";
            }

        }
        #endregion

    }
}
namespace BLL.上机职责链
{
    //查看用户是否上机
    public class checkOnLineBLL:handlerBLL
    {
        public override string handlerRequest(card card ,online line)
        {
            Factory.allFactory onstateFAC = new Factory.allFactory();
            IDAL.studentOnIDAL onstateIDAL = onstateFAC.checkOnline();
            List<online > list = onstateIDAL.checkOnline( line);

            if (0 == list.Count)
            {
                return "上机成功";
            }
            else
                {
                    return "该用户正在上机!";
                }

        }
    }
}

总结:
职责链模式的应用有很多的好处,首先,就是解耦的作用,还有就是更用以理清逻辑,可以随时增加和修改功能,很方便,这就是目前对于职责链的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值