.net三層結(jié)構(gòu)初探分析第2/4頁
更新時間:2008年09月08日 20:42:54 作者:
最近開始對架構(gòu)開始了研究,當(dāng)然由于水平不夠,先研究了“簡單的三層結(jié)構(gòu)”,至于“抽象工廠模式”放后面來研究吧!
三層結(jié)構(gòu)要求不能跨層訪問,在圖1中大家可以看到,3個層之間是逐層依賴的。與普通“單類結(jié)構(gòu)”最明顯的區(qū)別是,這里舉一個添加數(shù)據(jù)的例子(偽代碼):
單類結(jié)構(gòu)(直接依賴于數(shù)據(jù)基類):
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);
我想對于單類結(jié)構(gòu)來說,總是在WEB層拼湊SQL語句,然后調(diào)用數(shù)據(jù)操作類執(zhí)行SQL語句,這樣速度確實(shí)快一些。
看看三層結(jié)構(gòu):
web層:
string sname = "阿會楠";
string surl = "sosuo8.com";
Model.admin model = new Model.admin();//實(shí)體類
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();//實(shí)體類
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數(shù)據(jù)基類):
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實(shí)體類:
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;}
}
你看出之間一層層的依賴關(guān)系了嗎?“單類結(jié)構(gòu)”直接就是WEB->DBUtility,而三層是WEB->BLL->DAL->DBUtility,MODEL作為實(shí)體類都可以不算一個層,COMMON也是,DBUtlity也是,它們只能算是把具有共同使用功能的代碼堆放在一起。所以,三層就是WEB(界面層)->BLL(邏輯處理層)->DAL(數(shù)據(jù)訪問層),并且是層層依賴。而后面引申出來的項目(COMMON,MODEL,DBUtlity),并不算層。按我理解是這樣,如果有什么理解錯誤或不妥的地方歡迎指出,大家一起討論。
最好的學(xué)習(xí)方法就是看代碼,我寫了比較簡單的給大家學(xué)習(xí)下:

相關(guān)文章
asp.net使用WebAPI和EF框架結(jié)合實(shí)現(xiàn)數(shù)據(jù)的基本操作
這篇文章介紹了asp.net使用WebAPI和EF框架結(jié)合實(shí)現(xiàn)數(shù)據(jù)基本操作的案例,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04asp.net 數(shù)據(jù)庫連接類代碼(SQL)
asp.net數(shù)據(jù)庫連接類(SQL) 代碼,需要的朋友可以參考下。2010-03-03TreeView創(chuàng)建IHierarchicalDataSource類型的數(shù)據(jù)源實(shí)現(xiàn)
為TreeView創(chuàng)建IHierarchicalDataSource類型的數(shù)據(jù)源實(shí)現(xiàn)2009-01-01關(guān)于Asp.net頁面Page_Load被執(zhí)行兩次的問題分享
這篇文章介紹了關(guān)于Asp.net頁面Page_Load被執(zhí)行兩次的問題,有需要的朋友可以參考一下2013-09-09Ajax實(shí)現(xiàn)評論中頂和踩功能的實(shí)例代碼
這算是社團(tuán)布置的一個假期小作業(yè)吧,我只是提出我自己的解決方案,不一定是最合適的。2013-04-04ASP.NET2.0緩存(Cache)技術(shù)深入理解
緩存技術(shù)是ASP.NET2.0非常重要的一個特性,它提供了一種非常好的本地數(shù)據(jù)緩存機(jī)制,從而有效的提高數(shù)據(jù)訪問的性能2012-11-11