当前位置:编程学习 > C#/ASP.NET >>

机房收费系统=三层+设计模式

 在简单的三层登陆完成之后,我又在其中加入了设计模式,其中包括抽象工厂+反射和外观模式.关于设计模式,在学习三层之前我们已经系统的学习过,可是在这次往机房收费系统中加设计模式时,还是感觉无从下手,出现了学没有致用的尴尬情景.不过这也体现了我们提高班学习中项目驱动的优势.

   接下来是我的一些现有思路,可能还不很准确,期待读者朋友的指点.

   先说一下简单的三层登陆思想吧:

   我们现阶段接触的三层就是最基本的三层--UI层,BLL层和DAL层.关于这三者之间的关系,在我前面博客中有所涉及,如果有兴趣,你可以参看:三层架构入门.

   言归正传,理论知识我们知道了,在机房收费系统中,我们究竟是如何利用这三层来简化灵活我们的代码的呢?(由于.NET版本的登陆已经加入设计模式,所以简单三层用C#语言来展示.)

   大家可以先看下主体代码:

   UI层: 代码如下:


[csharp]
<SPAN style="FONT-SIZE: 18px">private void btnOK_Click(object sender, EventArgs e) 
        { 
            UserInfo user = new UserInfo(); 
            //向实体层传递参数  
            string UserName = txtUserName.Text.Trim(); 
            string Password = txtPassword.Text.Trim(); 
            user.UserName=UserName ; 
            user.Password = Password; 
            //实例化BLL层,并调用BLL层方法  
            LoginManager mgr = new LoginManager(); 
            UserInfo user2 = new UserInfo(); 
            user2 = mgr.UserLogin(user); 
            MessageBox.Show("登录用户:" + user.UserName); 
        } 
</SPAN> 

private void btnOK_Click(object sender, EventArgs e)
        {
            UserInfo user = new UserInfo();
            //向实体层传递参数
            string UserName = txtUserName.Text.Trim();
            string Password = txtPassword.Text.Trim();
            user.UserName=UserName ;
            user.Password = Password;
            //实例化BLL层,并调用BLL层方法
            LoginManager mgr = new LoginManager();
            UserInfo user2 = new UserInfo();
            user2 = mgr.UserLogin(user);
            MessageBox.Show("登录用户:" + user.UserName);
        }

   U层,就是我们窗体类,是用户唯一可以看到的部分.其中不涉及连接数据库,也不会包括业务逻辑.它主要负责接收用户输入指令并传给实体类,再有实体类传给B层,进行业务逻辑的判断.同时它也会根据B层产生的不同结果来及时反馈给用户.

 


   BLL层: 代码如下:

[csharp]
<SPAN style="FONT-SIZE: 18px">public  class LoginManager 
    { 
        public UserInfo UserLogin(UserInfo user) 
        { 
            //实例化DAL层,并调用DAL层方法  
            UserDAO uDAO = new UserDAO(); 
            user = uDAO.SelectUser(user  ); 
            //逻辑判断代码  
            if (user != null) 
            { 
                ScoreDAO sDAO = new ScoreDAO(); 
                sDAO.UpdateScore(user, 10); 
                return user; 
            } 
            else 
            { 
                throw new Exception("登录失败!"); 
            } 
        } 
</SPAN> 

public  class LoginManager
    {
        public UserInfo UserLogin(UserInfo user)
        {
            //实例化DAL层,并调用DAL层方法
            UserDAO uDAO = new UserDAO();
            user = uDAO.SelectUser(user  );
            //逻辑判断代码
            if (user != null)
            {
                ScoreDAO sDAO = new ScoreDAO();
                sDAO.UpdateScore(user, 10);
                return user;
            }
            else
            {
                throw new Exception("登录失败!");
            }
        }
   这一层是业务逻辑层,顾名思义,它主要负责系统中的绝大部分逻辑判断,一旦U层或者D层出现业务逻辑判断,我们就要考虑,它是不是应该放在B层.

 


   DAl层: 代码如下:

[csharp]
<SPAN style="FONT-SIZE: 18px">namespace Login.DAL 

     public  class UserDAO 
    { 
         /// <summary>  
         /// 连接数据库,获取用户信息  
  

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,