.net三层结构初探分析第2/4页
更新时间:2008年09月08日 20:42:54 作者:
最近开始对架构开始了研究,当然由于水平不够,先研究了“简单的三层结构”,至于“抽象工厂模式”放后面来研究吧!
三层结构要求不能跨层访问,在图1中大家可以看到,3个层之间是逐层依赖的。与普通“单类结构”最明显的区别是,这里举一个添加数据的例子(伪代码):
单类结构(直接依赖于数据基类):
string sname = "阿会楠";
string surl = "sosuo8.com";
string strSql = "insert into admin(sname,surl) values('" + sname + "','" + surl + ')";
DB.exeSQL(strSql);
string surl = "sosuo8.com";
string strSql = "insert into admin(sname,surl) values('" + sname + "','" + surl + ')";
DB.exeSQL(strSql);
我想对于单类结构来说,总是在WEB层拼凑SQL语句,然后调用数据操作类执行SQL语句,这样速度确实快一些。
看看三层结构:
web层:
string sname = "阿会楠";
string surl = "sosuo8.com";
Model.admin model = new Model.admin();//实体类
model.sname = sname;
mode.surl = surl:
BLL.admin bll = new BLL.admin();
bll.Add(model);
string surl = "sosuo8.com";
Model.admin model = new Model.admin();//实体类
model.sname = sname;
mode.surl = surl:
BLL.admin bll = new BLL.admin();
bll.Add(model);
BLL层:
public void Add(MODEL.admin model)
{
dal.Add(model);
}
{
dal.Add(model);
}
DAL层(需要依赖于DBUtility数据基类):
public void Add(Model.admin model)
{
string strSql = "insert into admin(sname,surl) values('" + model.sname + "','" + model.surl + "')":
DB.executeSQL(strSql);
}
{
string strSql = "insert into admin(sname,surl) values('" + model.sname + "','" + model.surl + "')":
DB.executeSQL(strSql);
}
Model实体类:
private string _sname;
private string _surl:
public string sname
{
set{_sname = value;}
get{return _sname};
}
public string surl
{
set{_surl = value;}
get{return _surl;}
}
private string _surl:
public string sname
{
set{_sname = value;}
get{return _sname};
}
public string surl
{
set{_surl = value;}
get{return _surl;}
}
你看出之间一层层的依赖关系了吗?“单类结构”直接就是WEB->DBUtility,而三层是WEB->BLL->DAL->DBUtility,MODEL作为实体类都可以不算一个层,COMMON也是,DBUtlity也是,它们只能算是把具有共同使用功能的代码堆放在一起。所以,三层就是WEB(界面层)->BLL(逻辑处理层)->DAL(数据访问层),并且是层层依赖。而后面引申出来的项目(COMMON,MODEL,DBUtlity),并不算层。按我理解是这样,如果有什么理解错误或不妥的地方欢迎指出,大家一起讨论。
最好的学习方法就是看代码,我写了比较简单的给大家学习下:
相关文章
ASP.NET Core MVC中Form Tag Helpers用法介绍
这篇文章介绍了ASP.NET Core MVC中Form Tag Helpers的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-02-02
asp.net Web Services上传和下载文件(完整代码)
随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。2008-12-12
使用.NET 6开发TodoList应用之领域实体创建原理和思路
虽然TodoList是一个很简单的应用,业务逻辑并不复杂,至少在这个系列文章中我并不想使其过度复杂,接下来通过本文给大家介绍使用.NET 6开发TodoList应用之领域实体创建思路及原理,需要的朋友可以参考下2021-12-12
asp.net下使用jQuery.AutoComplete完成仿淘宝商品搜索自动完成功能(改进了键盘上下选择体验)
其实这个已经是个比较常见的功能了,网上也有很多人做过这个了,但是很多都是仅仅做了一些基本的网页上自动完成功能,没有与具体的数据库进行联动,我今天所介绍这个自动完成的就是我修改的jQuery.AutoComplete+数据库的一个解决方案。2010-05-05


最新评论