前言:
接触到了机房收费系统之后,进一步的优化机房的代码,就用到了设计模式,职责链模式是很容易想到的一个,上下机的流程中,很容易就可以应用到
一、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 "该用户正在上机!";
}
}
}
}
总结:
职责链模式的应用有很多的好处,首先,就是解耦的作用,还有就是更用以理清逻辑,可以随时增加和修改功能,很方便,这就是目前对于职责链的理解。
本文介绍职责链模式在机房收费系统中的应用,通过具体代码示例展示了如何实现用户上机验证的各个步骤,包括卡号密码验证、余额检查及在线状态检查等。
1531





