机房重构之,职责链模式上机

相比于第一遍根据流程图写的上机流程,这一版利用职责链模式,将上机过程中的不同职责进行了封装,耦合度更低。符合了面向对象的设计原则:
这次,我把职责链放在了B层

设置上下级OpenHandler类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entity;

namespace BLL.上机
{
    /// <summary>
    /// 上机抽象类
    /// </summary>
    public abstract class OpenHandler
    {
        //定义保护名称
        protected OpenHandler successor;
        //设置上下级
        public void SetSuccessor(OpenHandler successor)
        {
            this.successor = successor;
        }
        //定义返回字符串类型的抽象方法
        public abstract string HandleRequest(HanlderEntity online);
    }
}

判断是否上机职责OpenLine类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entity;

namespace BLL.上机
{
    public class OpenLine : OpenHandler
    {
        public override string HandleRequest(HanlderEntity online)
        {
            //实例化判断类
            BLL.OO.JudgeBLL judge = new BLL.OO.JudgeBLL();

            //定义空字符串
            string message = " ";
            //判断是否正在上机
            bool i = judge.SelectLine(online);
            if (i == false)
            {
                message = "此卡号正在上机";
            }
            else
            {
                message = successor.HandleRequest(online);
            }
            return message;
        }
    }
}

判断余额职责OpenCash类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BLL;
using Entity;

namespace BLL.上机
{
    public class OpenCash : OpenHandler
    {
        public override string HandleRequest(HanlderEntity online)
        {
            //实例化判断类
            BLL.OO.JudgeBLL judgeBLL = new BLL.OO.JudgeBLL();
            
            bool falg = judgeBLL.SelectLineCash(online);

            string message = "";
            if (falg == false)
            {
                message = "余额不足,请充值";
            }
            else
            {
                message = successor.HandleRequest(online);
            }
            return message;
        }
    }
}

插入上机信息职责OpenInsert类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entity;

namespace BLL.上机
{
    public class OpenInsert : OpenCash
    {
        //OnLineEntity onLineEntity = new OnLineEntity();
        public override string HandleRequest(HanlderEntity online)
        {
            //查询用户基本信息
            dynamic[] vs = OO.SelectBLL.SelectUsersInfo(online);
            //将用户类型插入上机表和上机记录表
            //onLineEntity.CardNo = Convert.ToString(online);

            online.Level = vs[2];
            //onLineEntity.OperatorId = 0;

            //实例化插入类
            BLL.OO.InsertBLL insertBLL = new BLL.OO.InsertBLL();
            //插入正在上机表
            insertBLL.InsertLine(online);
            //插入上机记录表
            insertBLL.InsertOnline(online);
            string message = "上机成功";
            return message;
        }
    }
}

在上机的过程中,还用到了外观模式,在另一篇博客中有讲解。
上机UI层代码请看博客添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Java机房上机管理系统是一种用于管理机房上机的软件系统。它可以帮助机房管理员更好地管理机房资源,包括电脑的使用情况、电脑的维修情况等。下面是一个简单的Java机房上机管理系统的设计思路: 1. 系统功能设计 - 上机申请:学生可以通过系统提交上机申请,包括上机时间、使用电脑编号等信息。 - 电脑维修申报:学生可以通过系统提交电脑维修申报,包括电脑编号、故障描述等信息。 - 机房电脑管理:管理员可以通过系统管理机房电脑,包括电脑的添加、删除、修改等操作。 - 上机记录查询:学生和管理员可以通过系统查询上机记录,包括上机时间、使用电脑编号等信息。 - 维修记录查询:学生和管理员可以通过系统查询维修记录,包括电脑编号、故障描述等信息。 2. 系统架构设计 - MVC设计模式:将系统分为模型、视图和控制器三个部分,分别负责数据处理、用户界面和业务逻辑。 - 数据库设计:使用关系型数据库存储系统数据,包括学生信息、电脑信息、上机记录、维修记录等。 - 用户界面设计:使用Java Swing框架实现用户界面,包括登录界面、主界面、上机申请界面、电脑维修申报界面、机房电脑管理界面、上机记录查询界面、维修记录查询界面等。 3. 代码实现要求 - 标识符命名要符合规范,使用驼峰命名法。 - 代码要有注释,注释要清晰明了。 - 代码要有异常处理,避免程序崩溃。 - 代码要有单元测试,保证代码质量。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值