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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈三层架构(2)

發(fā)布時(shí)間:2025/6/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈三层架构(2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

感受:

? ? 對于三層的學(xué)習(xí),自己剛開始的感覺真的是一頭霧水啊。當(dāng)時(shí)真的出現(xiàn)了非常煩躁的感覺,我想這樣的感覺的出現(xiàn)真的是非常可怕的,就這樣耽誤了兩天,在網(wǎng)上也搜尋者自己想要的資料,昨天四姐也好心給調(diào)試了一番,頓時(shí)把自己的大腦打通了。事實(shí)上問題難不難。就在于能不能打開思路了!

VB.NET的三層實(shí)現(xiàn):

? ? ?上篇文章主要是對于三層有了一個(gè)表面的理解,以下針對機(jī)房收費(fèi)登陸界面來進(jìn)行一下簡單的理解:

? ? ?UI層主要就是表面的構(gòu)建。多以須要使用windows窗口來完畢,而其它BLL和DAL則不須要。之間建立一個(gè)類庫則能夠完畢自己所須要的功能。

三層的詳細(xì)表現(xiàn)形式:


對于三層的設(shè)計(jì)。要用一個(gè)實(shí)體層來調(diào)節(jié):


? ? ?實(shí)體層是全然面向?qū)ο蟮乃枷?#xff0c;作為數(shù)據(jù)的載體。在各個(gè)層之間傳遞。使用實(shí)體層的長處就是降低錯(cuò)誤的發(fā)生,舉一個(gè)最簡單的樣例:

? ? ?DAL中有一個(gè)Select方法,須要用到Username,PWD,Head三個(gè)類,使用實(shí)體層的話,則僅僅須要傳遞User這一個(gè)類就可,極大的減少了系統(tǒng)出錯(cuò)的可能。

游刃當(dāng)中的Entity層:

Public Class Models'//定義的私有屬性Private _userID As StringPrivate _PWD As String'定義屬性過程,通過屬性過程,才干同意它的類來訪問Public Property userID() As String '將user表中的每個(gè)數(shù)據(jù)都傳上去,實(shí)體是依據(jù)表來建立的GetReturn _userIDEnd GetSet(value As String)_userID = valueEnd SetEnd Property

前方招待的UI層:

Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.ClickDim mgr As New Login.BLL.UserBLL '實(shí)例業(yè)務(wù)層Dim user As New Entity.Models '實(shí)例實(shí)體Dim users As New Entity.Models '接收實(shí)體,用于接收UserLogin()返回的數(shù)據(jù)類型,實(shí)例化的標(biāo)準(zhǔn)必須加newuser.userID = txtUserName.Text.Trim() '給實(shí)體層傳入值user.PWD = txtPassword.Text.Trim()If txtUserName.Text = " " Then '推斷輸入是否正確MsgBox("username不能為空!

") Return End If If txtPassword.Text = " " Then '推斷password是否輸入正確 MsgBox("password不能為空!") Return End If Try users = mgr.UserLogin(user) If (users.userID Is Nothing And users.PWD Is Nothing) Then '假設(shè)user不為空,則能夠進(jìn)行下一步登陸 MsgBox("登陸失敗。username和password不匹配") Return Else MsgBox("登陸成功!登陸用戶: " + user.userID) End If Catch ex As Exception MsgBox(ex.Message()) '有錯(cuò)誤則提示錯(cuò)誤窗口 End Try End Sub

掌管中心的BLL層:

Public Class UserBLLFunction UserLogin(ByVal user As Entity.Models) As Entity.ModelsDim uDAL As New Login.DAL.UserDAL '實(shí)例化了DAl中的UserDALDim users As New Entity.Models '實(shí)例化實(shí)體層信息表users = uDAL.SelectUser(user) 'SelectUser方法返回一個(gè)實(shí)體類,給他賦值UserReturn usersEnd Function End Class默默奉獻(xiàn)的DAL層:

Public Function SelectUser(ByVal user As entity.models) As entity.models '對user中增加一個(gè)selectuser的方法Dim conn As SqlConnection '定義連接打開數(shù)據(jù)庫Dim cmd As New SqlCommand '定義數(shù)據(jù)庫命令conn = New SqlConnection("Server=huoyajing; Database=charge_sys; User ID=sa ;Password=123456") '實(shí)例化SQLUtil中返回的字符串cmd.Connection = conncmd.CommandText = "select * from User_Info Where userID=@UserID and PWD=@Password" '存儲(chǔ)過程cmd.Parameters.Add(New SqlParameter("@UserID ", user.userID)) '賦值,傳參cmd.Parameters.Add(New SqlParameter("@Password", user.PWD))cmd.CommandType = CommandType.Textconn.Open() '打開連接Dim reader As SqlClient.SqlDataReader '讀取數(shù)據(jù)庫中的表reader = cmd.ExecuteReader()Dim users As New Entity.Models '實(shí)例化實(shí)體While (reader.Read()) '無錯(cuò)誤,則持續(xù)運(yùn)行users.userID = reader.GetString(reader.GetOrdinal("userID")) '調(diào)用一次GetOrdinal方法,便在循環(huán)中使用users.PWD = reader.GetString(reader.GetOrdinal("PWD"))End Whileconn.Close()Return usersEnd Function

通過登錄窗口。對于三層也有了一個(gè)大概的了解,下邊說說其優(yōu)缺點(diǎn):

長處:

  • 1)安全性高。極大的減少了錯(cuò)誤的發(fā)生率;
  • 2)三層的目的就是為了實(shí)現(xiàn)“高內(nèi)聚。低耦合”。達(dá)到了解耦的目的;
  • 4)減輕了開發(fā)者的大腦思維。他們能夠僅僅關(guān)注于整個(gè)結(jié)構(gòu)中的某一層;
  • 5)項(xiàng)目分工明白,適應(yīng)性非常強(qiáng)。有利于對代碼的改動(dòng)以及后期的維護(hù)與升級。

缺點(diǎn):

  • 1)添加了代碼量。添加了工作量。

  • 2)因?yàn)榘言械囊粚觿澐譃榱巳龑?#xff0c;這樣大大減少了系統(tǒng)的性能,使之前的很多可以直接訪問數(shù)據(jù)庫的。如今卻要通過中間層來完畢。

總結(jié):

? ?對于三層架構(gòu)的使用,盡管可以提高代碼的適應(yīng)性,可是對于邏輯簡單的程序來說還是避免使用為好,否則僅僅會(huì)得到適得其反的效果.合理的使用三層架構(gòu),才干讓其各司其職,各盡所能。

轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/5363322.html

總結(jié)

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

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