三層架構學習(一)

2021-08-26 14:09:13 字數 3471 閱讀 1208

關於機房收費系統的三層架構的圖畫好了,糾結了好一陣子,終於要寫**了,心裡異常興奮。但是一開始我就碰到釘子了,心裡雖然有想法,但是仍然不知道用vb.net如何形容。一開始想著就這樣稀里糊塗的過去算了,看看中間能不能做出來,但是剛剛做了兩個小功能就發現走不下去了,發現死板硬套是行不通的。我仔細琢磨了一下我的**,發現了我的問題。

其次就是關於物件導向的知識方面的欠缺。我們以前學習的知識大部分是面向過程的,雖然一開始都在激烈的討論著物件導向的好處,但是真正接觸到物件導向的時候理論和實際就分家了,彷彿丈二和尚摸不著頭腦一般。總是想著用面向過程的思維來思考問題。關於這方面的問題我建議大家真正操作一番。接下來是我的做的機房收費系統登入功能的一段**,可能中間還有不足之處,希望大家批評指出:

1、 登入介面的功能:

如果登入成功,則顯示提示資訊「登入成功」;如果未能登入成功,則顯示提示資訊「登入失敗」

2、 三次架構的框架

3、 各層之間的引用關係:ui層引用bll層和entity層,bll層引用dal層和entity層,dal層引用entity層

4、 下面是實現過程中的**

(1)實體層**設計

'宣告user表裡的屬性

public class e_user

private e_userid as string

public property userid as string

getreturn e_userid

end get

set(byval value as string)

e_userid = value

end set

end property

private e_pwd as string

public property pwd as string

getreturn e_pwd

end get

set(byval value as string)

e_pwd = value

end set

end property

end class

(2)資料訪問層的**設計

public class d_user

'連線資料庫

dim sqlconnectstr as string = "server=wbx-pc;database=charge_sys;uid=sa;pwd=123;"

'自定義檢查引數

function selectuserinfo(byval user as entity.e_user) as entity.e_user

dim sql as string = "select * from user_info where userid='" & user.userid & "'"

'初始化具有查詢文字和 sqlconnection 的 sqlcommand 類的新例項。

dim sqlconnection1 as sqlconnection = new sqlconnection()

sqlconnection1.connectionstring = sqlconnectstr

dim cmd as sqlcommand = new sqlcommand()

cmd.commandtext = sql

cmd.connection = sqlconnection1

dim read as sqldatareader

dim userdatatable as new datatable

dim user1 as new entity.e_user

try'開啟連線

sqlconnection1.open()

'返回乙個資料集物件

read = cmd.executereader()

userdatatable.load(read)

user1.userid = userdatatable.rows(0)("userid")

user1.pwd = userdatatable.rows(0)("pwd")

return user1

catch ex as exception

user1.pwd = ""

return user1

finally

if not isnothing(sqlconnection1) then

sqlconnection1.close()

end if

end try

end function

end class

(3)業務邏輯層

'業務處理,做出邏輯判斷

public class b_login

function selectuiandentity(byval user as entity.e_user) as boolean

dim daluser as new dal.d_user

dim entityuser as new entity.e_user

entityuser.userid = user.userid

entityuser = daluser.selectuserinfo(entityuser)

'判斷操作

if entityuser.pwd.trim() = user.pwd then

return true

else

return false

end if

end function

end class

(4)介面層

public class frmlogin

'單擊確定按鈕,判斷是否登入成功

private sub btlogin_click(byval sender as system.object, byval e as system.eventargs) handles btlogin.click

dim loginuser as new entity.e_user

dim bcheck as new bll.b_login

loginuser.userid = txtid.text()

loginuser.pwd = txtpw.text()

if bcheck.selectuiandentity(loginuser) then

msgbox("登入成功")

else

msgbox("登入失敗")

end if

end sub

'退出系統

private sub btcancel_click(byval sender as system.object, byval e as system.eventargs) handles btcancel.click

endend sub

end class

三層架構(一)

三層架構 首先mvc不適合小型甚至中等規模的應用程式,花費大量時間將mvc應用到規模並不是很大的應用程式通常會得不償失 1 三層架構 通常意義上的三層架構就是講整個業務應用劃分為 表現層 ui 業務邏輯層 bll 或 services 資料訪問層 dao data access object 表現層...

三層架構(乙個) 什麼是三層架構?

三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 表現層 ui 業務邏輯層 bll 資料訪問層 dal 區分層次的目的即為了 高內聚,低耦合 的思想。分層 tier 概念 表現層 ui 通俗講就是展現給使用者的介面,用於顯示資料和接受使用者輸入的資料。即...

c mysql三層架構例項 三層架構例項

一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...