三层结构要求不能跨层访问,在图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),并不算层。按我理解是这样,如果有什么理解错误或不妥的地方欢迎指出,大家一起讨论。
最好的学习方法就是看代码,我写了比较简单的给大家学习下:
文章评论
共有 位脚本之家网友发表了评论我来说两句