.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);

       我想对于单类结构来说,总是在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);

BLL层:
public void Add(MODEL.admin 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);
}

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;}
}

       你看出之间一层层的依赖关系了吗?“单类结构”直接就是WEB->DBUtility,而三层是WEB->BLL->DAL->DBUtility,MODEL作为实体类都可以不算一个层,COMMON也是,DBUtlity也是,它们只能算是把具有共同使用功能的代码堆放在一起。所以,三层就是WEB(界面层)->BLL(逻辑处理层)->DAL(数据访问层),并且是层层依赖。而后面引申出来的项目(COMMON,MODEL,DBUtlity),并不算层。按我理解是这样,如果有什么理解错误或不妥的地方欢迎指出,大家一起讨论。

最好的学习方法就是看代码,我写了比较简单的给大家学习下:

相关文章

最新评论