解剖實體框架 1 實體與操作類

2021-08-26 01:38:01 字數 1482 閱讀 8308

1、什麼是實體?

根據我的理解,實體應該是指那些主要依賴外界進行管理或者處理的一類物件,這類物件以資料為住,一般只具有屬性(或者叫域),而不包含或只包含少量的內生方法(主要是一些自我處理的方法,這些方法不會操作其它物件,不產生對其它外界物件的依賴,比如轉殖,格式化等)。直白的講,實體就是資料類或者叫結構體,只是實體類是允許巢狀的,就是實體類的屬性也可以是另外的實體型別(本身也可)。與實體類相對應的就是操作類(業務類,資料處理類等)。

2、實體操作類

這裡的操作類主要是指針對實體進行操作的類,這些操作類除了包含一些必要的用來指導操作方法的屬性外,一般都不包含資料性屬性。操作類包含的方法一般都是針對實體或者實體集合的。通常情況下,操作單個實體和操作實體集合的類會分開。操作單個實體的,比如格式顯示,反射賦值,反射取值;而針對實體集合的則主要是新增,修改,讀取,刪除,查詢,篩選,計數,統計等操作。實體操作類和業務處理類的區別就是實體操作類只針對實體類本身,不帶業務邏輯色彩。從資料庫的角度看,實體操作類就相當於資料庫的sql.

3、實體為何要與操作分離

實體代表資料,操作代表處理資料的方法,這種將實體和實體操作分離是物件導向程式設計下乙個比較明智的改變,一方面因為物件導向只是分析和設計的乙個視角,並不代表世界的全部,傳統的那種將資料和方法分離的模式(面向過程)還是有其優勢的,特別是在大規模資料處理方面。其二,實體類與實體的操作方法,特別是外界施加給實體的方法,從邏輯上來講也很難理解。我一直覺得,面向過程和物件導向並不是對立的,它們之間是對立和統一的,物件導向側重於整體和全域性性,面向過程則注重區域性與實現。

實體類和操作的分離的好處:

1)便於儲存、運輸、共享和交換

一般情況下實體都是很簡單的東西,因為不帶有方法,而只有資料,因此便於儲存,運輸,共享和互動。有利於以xml格式進行處理。

2)便於操作復用

如果實體遵循一定的規則(大多時候用元屬性來描述),很多對實體的處理操作都可以通用方法。比如實體的增加,刪除,修改,查詢等。

3)便於與檔案系統和資料庫系統的結合

我們知道檔案系統和資料庫系統存放的主要是資料,而對於這些資料的處理都是外界附加的。實體與操作的分離,實體就非常適合與結構話的檔案資料和資料庫資料進行

轉換,便於在記憶體中實施對這些資料的處理。

4)以實體而不是單純的記錄來表示資料,可以很好的利用類的特性,來聚合資料,可以更好的從整體方面來對待這些物件,比如訂單實體,可以將表單頭和訂單明細資料作為整體來考慮。

不好的地方:

1)因為實體只包含屬性,而不提供或者只提供少量的方法,使得原來可以封裝在實體物件內的方法,也必須由外部提供,而且實體必需全面暴露自己。從這個方面來看,站在物件導向的角度講,破壞了物件的封裝性。同時由於實體主要包含的是靜態特徵,多型,繼承的作用不是很大(提供一定的介面屬性實現還是可以的)。其實這算不上不好的地方,有些事情沒必要進入「潔癖」狀態。

看到這裡,大家或許會發現,實體與操作類的分離,有點資料庫的味道,實際上現在有些持久層框架在某種意義上來講,就是乙個簡化的記憶體關聯式資料庫,比較典型的就是linqtosql,adonetentity framework。

解剖實體框架 1 實體與操作類

1 什麼是實體?在我們進行系統構造的目標業務領域裡,有一些物件,主要依賴外界進行管理或者處理,這些物件主要處在被加工或者處理的地位,這樣的物件我們稱之為實體物件,而這類物件以資料為住,一般只具有屬性 或者叫域 不包含或只包含少量的內生方法 主要是一些自我處理的方法,這些方法不會操作其它物件,不產生對...

解剖實體框架 1 實體與操作類

1 什麼是實體?在我們進行系統構造的目標業務領域裡,有一些物件,主要依賴外界進行管理或者處理,這些物件主要處在被加工或者處理的地位,這樣的物件我們稱之為實體物件,而這類物件以資料為住,一般只具有屬性 或者叫域 不包含或只包含少量的內生方法 主要是一些自我處理的方法,這些方法不會操作其它物件,不產生對...

解剖實體框架 6 總結

1 實體應該要簡單,層次最好平面化,這樣有利於實體在各種通訊中穿越 比如webservices,wcf,remoting,wcf ria等 2 雖然實體應該平面化,但並不代表不能有繼承層次,因為這種層次可以獲得很多管理和架構的好處 但要注意兩點 1是盡量採用介面 而且介面的方法或屬性主要目的是提供統...