温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

互联网中三层架构如何实现登录

发布时间:2021-12-07 11:45:34 来源:亿速云 阅读:121 作者:小新 栏目:开发技术

小编给大家分享一下互联网中三层架构如何实现登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

分层思想:

三层开发就是将整个业务应用划分为表示层、业务逻辑层、数据访问层、数据库等,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,有利于系统的开发,维护、部署和扩展。

其实总结一句话,是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。

以登录demo为例:

工厂+反射+配置文件

三层 UML图:

互联网中三层架构如何实现登录

通过UML图,我们可以很清楚的看到各层间的依赖关系。

NET设计方案:

互联网中三层架构如何实现登录

各层代码实现:

UI层

'--界面  Imports Entity  Imports BLL  Public Class Login      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click          Dim EntityUser As New Entity.EntityUser          Dim BLLUser As New BLL.BLLUser          EntityUser.User_ID = txtID.Text          EntityUser.User_Key = txtKey.Text          If BLLUser.GetBase(EntityUser) Then              MsgBox("登录成功!")          Else              MsgBox("登录失败!")          End If      End Sub  End Class

BLL层

'-- Dim DalF As New Factory,在调用工厂的时候将接口的类型做为参数传进去,在工厂中在通过接口类型去查找具体的实现对象   Imports Entity  Imports [Interface]  Imports FactoryClass  Public Class BLLUser      Public Function GetBase(ByVal EntityUser As Entity.EntityUser) As Boolean          Dim DalF As New Factory          Dim Entity_User As New Entity.EntityUser          Entity_User.User_ID = EntityUser.User_ID          Entity_User = DalF.Interface_User.GetBase(Entity_User)          If Entity_User.User_Key = EntityUser.User_Key Then              Return True          Else              Return False          End If      End Function  End Class

Factory类

'-- 反射+配置文件实现数据库访问,更换数据库只需要更改配置文件   '--AppSetting读取配置文件中的类别字符串  Imports [Interface]  Imports System.Reflection  Public Class Factory      Private Shared ReadOnly AssemblyName As String = "DAL"     Dim DataBase As String = System.Configuration.ConfigurationSettings.AppSettings("sql")      Function Interface_User() As [Interface].InterfaceUser          Dim ClassName As String = AssemblyName + "." + DataBase + "DALUser"         Return CType(Assembly.Load(AssemblyName).CreateInstance(ClassName), [Interface].InterfaceUser)      End Function  End Class

Interface接口层

<span style="color:#000000;">'--定义接口,通过引用使DAL层继承,实现接口  Imports Entity  Public Interface InterfaceUser      Function GetBase(Entity_User As Entity.EntityUser) As Entity.EntityUser  End Interface</span>

DAL层

<span style="color:#000000;">'--操作数据库  Imports Entity  Imports [Interface]  Imports System.Data.SqlClient   Public Class DALUser : Implements [Interface].InterfaceUser      Dim ConnStr As String = System.Configuration.ConfigurationSettings.AppSettings("ConnStr")      Dim sqlconn As SqlConnection = New SqlConnection(ConnStr)  '---连接收据库       Function GetBase(Entity_User As Entity.EntityUser) As Entity.EntityUser Implements [Interface].InterfaceUser.GetBase          Dim sqldata As String = "select * from User_Info where User_ID='" & Entity_User.User_ID & "'"   '---SQL语句,从User_Info中读取所有信息          Dim sqlcmd As New SqlCommand(sqldata, sqlconn)    '---连接数据库 打开User_Info表          Dim sqlread As SqlDataReader           '---SqlDataReader读取数据库的方法,只读          Try              sqlconn.Open()              sqlread = sqlcmd.ExecuteReader   '---ExecuteReader 方法,查询数据库并得到结果。ExecuteReader 返回SqlDataReader              sqlread.Read()                                    '---sqlcmd.ExecuteReader 的 Read()  读取表中的记录,每次调用都是返回一行的结果集。              Entity_User.User_ID = sqlread.Item("User_ID")              Entity_User.User_Key = sqlread.Item("User_Key")               Return Entity_User          Catch ex As Exception              Entity_User.User_Key = ""             Return Entity_User          End Try      End Function  End Class  </span>

Entity实体层

'----实体类负责实体的表示和数据的传递,不包含任何逻辑性内容。  Public Class EntityUser      Private strUser_ID As String      Private strUser_Key As String      Public Property User_ID As String          Get                                  '---获取值              Return (strUser_ID)  '---获取User_ID属性返回strUser_ID          End Get          Set(value As String)     '---设置值              strUser_ID = value    '---传值,放在value参数里          End Set      End Property      Public Property User_Key As String          Get              Return (strUser_Key)          End Get          Set(value As String)              strUser_Key = value          End Set      End Property  End Class

配置文件

'--  <?xml version="1.0" encoding="utf-8" ?> <configuration>     <startup>         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />     </startup>   <appSettings>     <add key ="ConnStr" value="Data Source=(Local);DataBase=Login;User ID=sa;Password=123456"></add>     <add key ="sql" value =""></add>   </appSettings> </configuration>

以上是“互联网中三层架构如何实现登录”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI