機房重構 實體類(Model)的奇葩說

2021-07-11 10:00:41 字數 1891 閱讀 7108

在剛剛開始三層架構的時候,遇到三層分別是介面層(ui),業務邏輯層(bll),資料庫訪問層(dal),還有乙個就是實體層(model),在總結三層的時候不知道實體(model)是幹什麼用的,在畫圖的時候直接把它當做一層,與u層,b層,d層同等重要,後來經過學習,才發現其實並不是這樣,尋求了一下度娘的幫助,查獲了各種各樣的說法,那麼孰真孰假,哪個最終經得起考驗,別急,且聽我細細道來。

路人甲:

傳遞引數——model是為了讓傳遞資料更加方便,簡單,系統易於維護,尤其是對於大量的資料來說用基本資料型別變數做引數顯示不合適. 拿實體物件做引數則方便的多。

例子:機房收費系統中的增加學生資訊,,在各層之間引數傳遞時可以不用實體類,而是傳遞基本資料型別變數:insert(studentid,studentname,studentclass…),也可以應用實體類,傳遞乙個學生實體insert(studentinfo);顯然第二種方法比第一種要簡單許多;

不用實體類的三層:

用了實體的三層:

由此可以看出 ,用實體類之後,**明顯變得簡潔,物件導向封裝思想。最重要的是,如果將來有所改動,只需要改動實體類,方法間呼叫介面,完全不需要變動,大大減少了程式修改量,迎合了物件導向中介面不變的思想。

路人乙:資料表的對映——model層裡面的乙個類對應資料庫裡面的一張表, 把表裡的字段封裝在乙個實體物件裡,類裡面的每乙個屬性對應表裡面的乙個字段,每個屬性都有自己的 get 和 set 方法, 專案中的資料訪問都要依靠get和set方法來實現,使用實體類屬合物件導向程式設計的思想,把乙個表封裝成乙個類。

舉例:三層中的model層**——

namespace login.model

public string username

public string password

public string email }}

datatable:是乙個臨時儲存資料的網格虛擬表(表示記憶體中資料的乙個表。)。datatable是ado dot net 庫中的核心物件。它可以被應用在 vb 和 asp 上。它無須**就可以簡單的繫結資料庫。它具有微軟風格的使用者介面。

路人丙:複雜資料的儲存——model是什麼?它什麼也不是!它在三層架構中是可有可無的。它其實就是物件導向程式設計中最基本的東西:類。乙個桌子是乙個類,一條新聞也是乙個類,int、string、double等也是類,它僅僅是乙個類而已。model在三層架構中的位置和int,string等變數的地位就一樣了,沒有其它的目的,僅用於資料的儲存而已,只不過它儲存的是複雜的資料。

看了這麼多,不知道大家對實體類有沒有新的認識,一種八仙過海,各顯神通的感覺,實體類從不同的角度看,就會有不同的理解。我的理解是實體類就是乙個橋梁,在各層之間傳遞資料;現在只是乙個小小的開始,理解起來可能有許多不完善的地方,隨著機房重構的進一步深入,我們的認識會越來越深入,just do it !

model實體類中Hibernate註解說明

hibernate註解 1。entity name entityname 必須,name為可選,對應資料庫中一的個表 2 table name catalog schema 可選,通常和 entity配合使用,只能標註在實體的class定義處,表示實體對應的資料庫表的資訊 name 可選,表示表的名...

業務邏輯層實體類Model分析

業務邏輯層實體類 model分析 1 業務邏輯層 1 業務專案實體分析 model 分析 petshop 中的九大業務資訊 1 訂單資訊 orderinfo 2 單個寵物資訊 iteminfo 3 寵物類別資訊 categoryinfo 4 寵物目錄資訊 productinfo 5 購物車 意向清單...

對映實體類的主鍵

進行資料庫設計的時候要為每個資料表設計乙個沒有物理意義的邏輯主鍵,一般是自增整形 如果實體類的標識屬性 對映成主鍵列 是基本資料型別 基本包裝類,string date 等 型別,可以簡單的 使用 id修飾該實體屬性即可 id,無需指定任何屬性 generatedvalue來修飾實體的標識屬性 st...