日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

三层结构

發(fā)布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三层结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
“三層結(jié)構(gòu)”是“外觀層”、“商業(yè)邏輯層”、“數(shù)據(jù)庫層”

假設(shè)以這樣的結(jié)構(gòu)制作一個留言板,那么應(yīng)該是:

??? # 留言板頁面的外觀代碼都存放在 .aspx 文件中

??? # 當(dāng)用戶點擊頁面上的提交按鈕時,先將文本信息傳遞給一個 LeaveWord 類對象

??? (LeaveWord 類的定義被封裝到“商業(yè)邏輯層”)

??? # 之后讓這個對象執(zhí)行 Post() 將留言信息發(fā)送到數(shù)據(jù)庫


用一個簡單的代碼就是:

??? <textarea id="Content" runat?="server"></textarea>
??? <input type="button" id="Post" runat?="server" />

??? // ----------------------------------------
??? // 在外觀層,當(dāng)用戶點擊發(fā)送按鈕后
??? // ----------------------------------------
??? private void Post_ServerClick(object sender, EventArgs e)
??? {
??????? LeaveWord lword=new LeaveWord();
??????? lword.Content=Content.Value;
??????? lword.Post();
??? }

??? // ----------------------------------------
??? // 在商業(yè)邏輯層,定義 LeaveWord 類
??? // ----------------------------------------
??? public class LeaveWord
??? {
??????? public string Content;

??????? public void Post()
??????? {
??????????? new LWordData().Post(this.Content);
??????? }
??? }

??? // ----------------------------------------
??? // 數(shù)據(jù)庫層,定義發(fā)送方法
??? // ----------------------------------------
??? public class LWordData
??? {
??????? public void Post(string content)
??????? {
??????????? // 打開數(shù)據(jù)庫,將 content 插入到表中
??????? }
??? }

這樣,外觀層就不必費心數(shù)據(jù)庫操作了...


理解基本正確.但是數(shù)據(jù)層已經(jīng)只是數(shù)據(jù)庫的操作,不應(yīng)該和業(yè)務(wù)有任何關(guān)系,你可以參考SqlHelper.cs
提醒一點,系統(tǒng)的"層"是對代碼的一種邏輯劃分,并不是一定要三層,假設(shè)你的系統(tǒng)很簡單,就一個頁面,那一層就可以,如果系統(tǒng)很復(fù)雜,也可能是n層.
差不離了,核心就是外層絕對不會涉及任何數(shù)據(jù)處理,他的任務(wù)是設(shè)置界面,獲取數(shù)據(jù),輸出數(shù)據(jù)
業(yè)務(wù)層最重要,所有數(shù)據(jù)處理在這里,如何運用外層提供的數(shù)據(jù)處理業(yè)務(wù)
數(shù)據(jù)庫層一般都建議調(diào)用存儲過程,返回數(shù)據(jù)集或其他所需數(shù)據(jù);.net的那兩個例子很好,多學(xué)習(xí)一下.
一個原則:
上層調(diào)下層
上層對下層是不可見的
設(shè)計時,表現(xiàn)層只調(diào)用邏輯層,表現(xiàn)層主要是取得頁面的數(shù)據(jù)傳到邏輯層,和把從邏輯層得到的數(shù)據(jù)顯示到頁面上。
邏輯層負(fù)責(zé)把數(shù)據(jù)加工整理傳到數(shù)據(jù)層和把從數(shù)據(jù)層取得的數(shù)據(jù)加工
數(shù)據(jù)層就只負(fù)責(zé)把數(shù)據(jù)對數(shù)據(jù)庫操作

業(yè)務(wù)邏輯層 就是給上層和下層下達命令和調(diào)節(jié)行為的中間層,這樣說易于理解一點了吧?

?

總結(jié)

以上是生活随笔為你收集整理的三层结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。