三层架构

1. 三层结构

多层结构划分方式:物理/逻辑
两层/三层结构

(客户PC;应用服务器;数据库服务器)

两层三层
这里写图片描述right-aligned

物理上的三层:显示层、业务层、数据层
逻辑上的三层:UI、BLL、DAL

在应用程序开发中,数据库DB作为存储介质,UI、BLL、DAL三层是需要设计者完成的。
这里写图片描述

1.1 显示层UI

1.1.1 UI的作用1.1.2 UI设计原则1.1.3 UI中常用的技术
向用户展现特定的业务数据;用户至上,兼顾简洁。Windows Form:Form、Control
采集用户的输入信息和操作.ASP.NET :aspx、ascx、master、html

这里写图片描述

1.2 业务逻辑层BLL

1.2.1 BLL的作用1.2.2 BLL的职责机制
从DAL中获取数据,以供UI显示用UI->BLL->UI
从UI中获取用户指令和数据,执行业务逻辑UI->BLL->DAL->BLL->UI
从UI中获取用户指令和数据,通过DAL写入数据源
namespace Login.BLL
{
    public class LoginManager
    {
        public Login .Model.UserInfo UserLogin (string userName,string password)
        {
            //BLL要引用DAL类,才能访问DAL
            Login.DAL.UserDAO uDao = new DAL.UserDAO();
            Login.Model.UserInfo user= uDao.SelectUser(userName, password);

            if (user != null )
            {
                Login.DAL.ScoreDAO sDao = new Login.DAL.ScoreDAO();
                sDao.UpdateScore(userName, 10);//更新成绩+10
                return user;
            }
            else
            {
                throw new Exception("登录失败");
            }
        }
    }
}

1.3 数据访问层DAL

1.3.1 DAL的作用1.3.2 DAL中常用的技术
从数据源加载数据(select)ADO.NET+SQL语句
向数据源写入数据(Insert、Update)访问SQL Server数据库时Linq to SQL
从数据源删除数据(Delete)访问SQL Server数据库时Linq to SQL
namespace Login.DAL
{
    class DbUtil
    {
        public static string ConnString = @"Server=LJM; Database=Login; User ID=sa; Password=123456";        
    }
}
namespace Login.DAL
{
    public class ScoreDAO
    {
        public void UpdateScore(string userName, int value)
        {
            using (SqlConnection conn = new SqlConnection(DbUtil.ConnString))   //有了using之后,connection就可以自动关闭了
            {
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = @"INSERT INTO SCORES(UserName,Score) Values(@UserName,@Score)";
                cmd.Parameters.Add(new SqlParameter("@UserName", userName));
                cmd.Parameters.Add(new SqlParameter("@Score", value));

                conn.Open();//不需要Close
                cmd.ExecuteNonQuery();               
            }         
        }
    }
}

2. 为什么使用三层架构?

不需要使用三层结构的情况:业务逻辑简单,没有真正的数据存储层,也就不需要数据访问层

需要使用三层结构的情况:当业务复杂到一定程度的时候,有数据存储层和数据访问层。

3.总结

其实使用三层结构,就是一个解耦的过程,目的就是降低层与层之间的依赖。上述也说了当业务复杂到一定程度时候,可使用三层结构,也就是说三层结构系统架构复杂,不适用于小型的项目使用。还有大家有没有觉得业务逻辑层就是个中介者,访问了UI,找DAL。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 73
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 73
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值