C 三層登入《機房重構》

2021-07-09 18:45:58 字數 2143 閱讀 6519

光總結了c#三層登入出現的問題,還沒有真正總結過三層登入例項,近來敲機房的七層登入,可謂是問題重重,當初自以為三層理解的很透徹了,現在看來還差的很多,我需要用總結來沉澱一下自己,讓自己的心不那麼浮躁。

簡單來說,三層有別於之前有vb敲的小例子的是,三層非常好的解除了各個層之間的耦合,為以後的維護提供了極大的便利。

各個層之間的關係

u層:使用者接觸的層,準確來說,使用者僅僅接觸了乙個u層。用於收集使用者輸入的資訊以及使用者的操作。

b層:根據u層使用者輸入的資訊及操作和d層資料返回的資訊,進行邏輯判斷。

d層:連線資料庫,接受b層訊息,將使用者需要的資料從資料庫提取出來,返回到b層進行邏輯判斷。

它們之間的引用關係為:u層引用b層,b層引用d層,各個層都引用實體層。用丹姐的包圖來美化一下:

ui層很簡單,就是將使用者的操作傳給b層。

namespace ui

private void btnok_click(object sender, eventargs e)

#endregion

#region//登入

model.userinfo user = agr.userlogin(userid, password,out msg);

messagebox.show(msg);

if (msg=="登入成功。")

else

}private void btncancel_click(object sender, eventargs e)

}

bll層相對複雜一點,就是將u層傳來的引數或d層返回的值進行邏輯判斷,給出正確的操作。

namespace bll

else

return user;

}public bool empty(string userid,string password)//這就是驗證框是是否為空的**,我是在b層判斷完返回乙個bool給u層的。

else }}

}

dal層主要用到的就是連線資料庫,讓後對資料庫中的資料進行一些簡單的操作後返回給b層。對於b層引用的那個dbutil.connstring是在d層另外乙個類裡面定義的

namespace dal

}

接下來是d層

namespace dal

user.userid = reader.getstring(0);//給實體層的屬性寫入資料

user.password = reader.getstring(1);

user.level = reader.getstring(2);

user.status = reader.getint16(3);

user.head = reader.getstring(4);

}return user;//將實體user返回到b層}}

}}

實體層主要用於在三個層中傳遞實體,比如該版登入返回的型別就是實體。實體沒什麼好說的,用到哪個引數就在實體中建立就行,需要注意的就是實體類裡面是直接對應到資料庫表的,你定義的資料型別要和表中型別相一致才行。

namespace model

public string password

public string level

public int16 status

public string head }}

三層的登入和七層的登入,對比vb敲的一層機房收費系統,其實就是把類與類之間的耦合一步步變小,達到乙個相對完美,符合對擴充套件開放,對修改關閉的原則的過程,無非就是寫**的時候看似麻煩了一點,明明可以u層直接從資料庫訪問資料的卻非要經過那麼多層,傳遞那麼多引數,但是這在以後的維護中起到了決定性的作用。站在乙個高處去看七層,其實就是把以前的一步到位,轉換成引數一步步傳下去的過程。

不管是vb機房,三層機房,還是七層機房,剛開始都覺得很難,後來理清楚一條線就簡單了,一氣呵成,現在敲七層,覺得根本不是人腦子能想出來的東西,回頭看看三層,在看看vb版,它們是我一步步由難到易過來的,克服了重重困難,我相信我的七層也會在我的努力下變得簡單。

機房重構之 三層和七層

三層包括業務邏輯層 bll 資料訪問層 dal 和表現層 ui 表現層 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。資料訪問層 該層所做事務直接運算元據庫,針對資料的增添 刪除 修改 更新 查詢...

C 機房重構 七層登入

兩個多星期的探索終於算是把登入敲通了,當 登入成功!顯示在我眼前的那一刻,我想那種快樂的感覺就好像我中了三百萬大獎一樣的激動吧!三層當時不是很明白,所以三層到七層走了不少彎路。出來混早晚是要還的,這話說的一點都沒錯。廢話不多說了,直接上料。這裡的七層是在三層的基礎上與設計模式相結合演化而來的,應用了...

機房重構 七層登入

在前面介紹了三層,ui層 bll層 dal層 這次總結下 七層 在還沒有學習七層的時候,那時候只是認為 七層 只是比三層多了四層而已,其實不然,七層它也是機房重構的登入部分。其實在學習 機房重構的時候 包括在寫任何程式的時候,沒有任何要求說必須使用七層架構,所以說,這就有了我們為什麼要用 七層架構 ...