亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡單介紹三層架構(gòu)工作原理

 更新時間:2021年12月07日 15:57:57   作者:不想掉頭發(fā)$  
這篇文章介紹了三層架構(gòu)的工作原理,二層與三層架構(gòu)的區(qū)別,三層架構(gòu)的優(yōu)劣勢。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

在閱讀本篇文章時請關(guān)注如下問題:

  • 1.什么是三層架構(gòu)?
  • 2.為什么使用三層架構(gòu)?
  • 3.三層與以往使用的兩層相比有什么不同?它的優(yōu)勢在哪里?
  • 4.如何學好三層架構(gòu)?如何應用三層架構(gòu)??

一、什么是三層架構(gòu)

三層架構(gòu)就是為了符合“高內(nèi)聚,低耦合”思想,把各個功能模塊劃分為表示層(UI)、業(yè)務邏輯層(BLL)和?數(shù)據(jù)訪問層(DAL)三層架構(gòu),各層之間采用接口相互訪問,并通過對象模型的實體類(Model)作為數(shù)據(jù)傳遞的載體,不同的對象模型的實體類一般對應于數(shù)據(jù)庫的不同表,實體類的屬性與數(shù)據(jù)庫表的字段名一致。

各模塊功能劃分表:

UI:(表現(xiàn)層) 主要是指與用戶交互的界面。用于接收用戶輸入的數(shù)據(jù)和顯示處理后用戶需要的數(shù)據(jù)。
BLL:(業(yè)務邏輯層) UI層和DAL層之間的橋梁。實現(xiàn)業(yè)務邏輯。業(yè)務邏輯具體包含:驗證、計算、業(yè)務規(guī)則等等。
DAL:(數(shù)據(jù)訪問層) 與數(shù)據(jù)庫打交道。主要實現(xiàn)對數(shù)據(jù)的增、刪、改、查。將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務層,同時將業(yè)務層處理的數(shù)據(jù)保存到數(shù)據(jù)庫。(當然這些操作都是基于UI層的。用戶的需求反映給界面(UI),UI反映給BLL,BLL反應給DAL,DAL進行數(shù)據(jù)的操作,操作后再逐步返回,直到將用戶所需數(shù)據(jù)反饋給用戶)

三層架構(gòu)運作流程圖:

?

三層架構(gòu)中各功能模塊如何聯(lián)系?

這里就要提到Entity(實體層):它不屬于三層中的任何一層,但是它是必不可少的一層。對于大量的數(shù)據(jù)來說,用變量做參數(shù)有些復雜,因為參數(shù)量太多,容易搞混。比如:我要把員工信息傳遞到下層,信息包括:員工號、姓名、年齡、性別、工資.......用變量做參數(shù)的話,那么我們的方法中的參數(shù)就會很多,極有可能在使用時,將參數(shù)匹配搞混。這時候,如果用實體做參數(shù),就會很方便,不用考慮參數(shù)匹配的問題,用到實體中哪個屬性拿來直接用就可以,很方便。這樣做也提高了效率。

Entity在三層架構(gòu)中的作用:

1.實現(xiàn)面向?qū)ο笏枷胫械?封裝";
2.貫穿于三層,在三層之間傳遞數(shù)據(jù);(注:確切的說實體層貫穿于三層之間,來連接三層)

3.對于初學者來說,可以這樣理解:

每張數(shù)據(jù)表對應一個實體,即每個數(shù)據(jù)表中的字段對應實體中的屬性

(注:當然,事實上不是這樣。

? ? ? ? ?為什么?

? ? ? ? 1>)可能我們需要的實體在數(shù)據(jù)表對應的實體中并不存在

? ? ? ? 2>)我們完全可以將所有數(shù)據(jù)表中的所有字段都放在一個實體里)

4.每一層(UI—>BLL—>DAL)之間的數(shù)據(jù)傳遞(單向)是靠變量或?qū)嶓w作為參數(shù)來傳遞的,這樣就構(gòu)造了三層之間的聯(lián)系,完成了功能的實現(xiàn)。

(補充:3.中為什么說可以暫時理解為每個數(shù)據(jù)表對應一個實體??

我們做系統(tǒng)的目的,是為用戶提供服務,用戶可不關(guān)心你的系統(tǒng)后臺是怎么工作的,用戶只關(guān)心軟件是不是好用,界面是不是符合自己心意。用戶在界面上輕松的增、刪、改、查,那么數(shù)據(jù)庫中也要有相應的增、刪、改、查,而增刪改查具體操作對象就是數(shù)據(jù)庫中的數(shù)據(jù),說白了就是表中的字段。所以,將每個數(shù)據(jù)表作為一個實體類,實體類封裝的屬性對應到表中的字段,這樣的話,實體在貫穿于三層之間時,就可以實現(xiàn)增刪改查數(shù)據(jù)了)

?三層及實體層之間的依賴關(guān)系:

?

二、為什么使用三層架構(gòu)

三層架構(gòu)區(qū)分層次的目的是為了 “高內(nèi)聚,低耦合”。開發(fā)人員分工更明確,將精力更專注于應用系統(tǒng)核心業(yè)務邏輯的分析、設計和開發(fā),加快項目的進度,提高了開發(fā)效率,有利于項目的更新和維護工作。

三、三層與兩層的區(qū)別

兩層:

img

(當任何一個地方發(fā)生變化時,都需要重新開發(fā)整個系統(tǒng)。"多層"放在一層,分工不明確耦合度高——難以適應需求變化,可維護性低、可擴展性低)

三層:

img

(發(fā)生在哪一層的變化,只需更改該層,不需要更改整個系統(tǒng)。層次清晰,分工明確,每層之間耦合度低——提高了效率,適應需求變化,可維護性高,可擴展性高)

三層架構(gòu)的優(yōu)勢:

1.結(jié)構(gòu)清晰、耦合度低
2.可維護性高,可擴展性高
3.利于開發(fā)任務同步進行, 容易適應需求變化

三層架構(gòu)的劣勢:

1.降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結(jié)構(gòu),很多業(yè)務可以直接造訪數(shù)據(jù)庫,以此獲取相應的數(shù)據(jù),如今卻必須通過中間層來完成。
2.有時會導致級聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結(jié)構(gòu),可能需要在相應的業(yè)務邏輯層和數(shù)據(jù)訪問層中都增加相應的代碼
3.增加了代碼量,增加了工作量

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 實現(xiàn)FTP客戶端的小例子

    C# 實現(xiàn)FTP客戶端的小例子

    這篇文章主要介紹了C# 如何實現(xiàn)FTP客戶端,文中實例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C# ListBox中的Item拖拽代碼分享

    C# ListBox中的Item拖拽代碼分享

    在本文中我們給大家分享了關(guān)于C#的ListBox中的Item拖拽的功能代碼分享,對此有需要的朋友參考學習下。
    2018-03-03
  • C#實現(xiàn)壓縮圖片為可控制的JPEG格式

    C#實現(xiàn)壓縮圖片為可控制的JPEG格式

    這篇文章主要為大家詳細介紹了使用C#實現(xiàn)將圖片壓縮為質(zhì)量可自己控制的JPEG的幾種方式,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2024-01-01
  • C#實現(xiàn)定義一個通用返回值

    C#實現(xiàn)定義一個通用返回值

    這篇文章主要介紹了C#如何實現(xiàn)自定義一個比較通用的返回值對象,然后使用泛型來傳遞需要return的數(shù)據(jù)。文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-09-09
  • C#編程獲取客戶端計算機硬件及系統(tǒng)信息功能示例

    C#編程獲取客戶端計算機硬件及系統(tǒng)信息功能示例

    這篇文章主要介紹了C#編程獲取客戶端計算機硬件及系統(tǒng)信息功能,可實現(xiàn)針對客戶端系統(tǒng)CPU、硬盤、主板等硬件信息及客戶端操作系統(tǒng)、IP、MAC等信息的操作技巧,需要的朋友可以參考下
    2017-01-01
  • C#三種方法獲取文件的Content-Type(MIME Type)

    C#三種方法獲取文件的Content-Type(MIME Type)

    這篇文章介紹了C#獲取文件Content-Type(MIME Type)的三種方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 在WinForm應用程序中快速實現(xiàn)多語言的處理的方法

    在WinForm應用程序中快速實現(xiàn)多語言的處理的方法

    在國際化環(huán)境下,越來越多的程序需要做多語言版本,這篇文章主要介紹了在WinForm應用程序中快速實現(xiàn)多語言的處理的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2018-07-07
  • Unity制作圖片字體的方法

    Unity制作圖片字體的方法

    這篇文章主要為大家詳細介紹了Unity制作圖片字體的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 找到整型陣列中最大值和最小值的幾種方法總結(jié)

    找到整型陣列中最大值和最小值的幾種方法總結(jié)

    下面小編就為大家分享一篇找到整型陣列中最大值和最小值的幾種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#關(guān)于反射加載的問題

    C#關(guān)于反射加載的問題

    C#關(guān)于反射加載的問題,需要的朋友可以參考下。
    2011-07-07

最新評論