本文主要是介绍三层--对你的认识再多一点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开篇碎碎念
之前画UML图的时候接触了一点三层,那时候对三层充其量就算是知道了,这段时间学习三层,可以说是认识了,我的感觉是三层富有挑战,自己也很兴奋,当然也感觉到自己要学的东西还有很多的。培养计划上说,对于三层的认识是一个持久的过程,我想这个过程一定是一个充满惊喜的旅途。
认识三层
三层是什么?
对于一个项目,我们把他的架构分为了三层:UI(界面层),BLL(业务逻辑层),DAL(数据访问层)。三层共同工作,且相互独立的完成这个项目要实现的功能。
你要问为什么用三层,什么时候用呢?
也不是所有的软件设计都需要用到三层的架构,如果编码简单,业务简单,数据存储简单的话,我们完全没有必要用到三层了。不过,如见软件的功能越来越强大了,项目的业务相对复杂,我们需要有单独存储数据的部分,同时对数据存储也有过高的要求,这时我们就要用到三层架构了。
为什么要用到三层呢?1.三层使得每一层之间的耦合度降低,一层的变化,不会或较小的影响到其他层的修改。2.三层之间的任意一层可以抽出来被另一个设计的层来替换,也就是这三层之间的组合式自由的。3.设计人员可以专注的设计某一层,效率提高了。
你知道三层是干什么的吗?
上面的三层我们说了半天了,这三层是干什么的呢?
1. UI:用户界面层,收集用户输入的信息,显示用户想要的信息。这一层没有业务逻辑,有点像拿来主义。2. DAL:数据访问层,访问数据源,并对数据源进行增删该查的操作。这一层也没有业务逻辑,知识跟数据源打交道。3. BLL:业务逻辑层,他是UI和DAL的一个桥梁,将UI层收集的数据传递给DAL,同时将DAL返回的数据传给UI供其显示;同时项目的功能实现当中的逻辑都是靠这一层来实现的。
下面是画的一个简单的图,帮助一下理解:
展示DEMO
关于三层怎么使用,我对他的认识也比较浅,通过自己敲的例子,来说一下三层吧。
UI
'收集的信息string UserName = txtUserName.Text.Trim();string password = txtpassword.Text.Trim();'调用BLL层的数据类
Login.BLL .LoginManager mgr = new Login.BLL.LoginManager ();
Login.Model .UserInfo userUI = mgr.UserLogin(UserName, password);
'显示信息
MessageBox.Show("登陆用户:" + userUI.UserName);
DAL
public Login.Model .UserInfo SelectUser(string userName, string password)
{using(SqlConnection conn= new SqlConnection(DbUtil.ConnString)) ''访问数据库{SqlCommand cmd = conn.CreateCommand();cmd.CommandText = @"select ID, UserName, Password, Email from Users where UserName = @UserName and Password=@Password" ;cmd.CommandType = CommandType.Text;cmd.Parameters .Add (new SqlParameter ("@UserName",userName )); //增加两个参数cmd.Parameters .Add (new SqlParameter ("@Password",password ));conn.Open();SqlDataReader reader = cmd.ExecuteReader();Login.Model.UserInfo user = null;while (reader.Read()){if (user == null){user = new Login.Model.UserInfo();}user.ID = reader.GetInt32(0);user.UserName = reader.GetString(1);user.Password = reader.GetString(2);user.Email = reader.GetString(3);}return user;}
}
BLL
public Login.Model .UserInfo UserLogin (string userName, string password) //返回userinfo
{//throw new NotImplementedException();//访问D 层的Login.DAL.UserDAO uDAO = new Login.DAL.UserDAO();Login.Model.UserInfo userBLL = uDAO.SelectUser(userName, password);if (userBLL != null){Login.DAL.ScoreDAO sDAO = new DAL.ScoreDAO();sDAO.UpdateScore(userName, 10);return userBLL;}else{throw new Exception("登录失败!");}}
结语
对于三层的学习,还在继续,日后使用三层的时候一定要时刻想着:灵活性,复用性,可维护性。才疏学浅,多多指教!
这篇关于三层--对你的认识再多一点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!