關於機房收費系統的三層架構的圖畫好了,糾結了好一陣子,終於要寫**了,心裡異常興奮。但是一開始我就碰到釘子了,心裡雖然有想法,但是仍然不知道用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 需求 學校機房收費系統 中的乙個功能 操作員為學...