Model的類型
ASP.NET的大師級人物Dino Esposito將ASP.NET MVC內(nèi)使用到的Model分類為三種:分別是Domain Model, View Model與Input Model。Domain Model是以數(shù)據(jù)源為主的Model,融入了領(lǐng)域驅(qū)動設(shè)計(jì)的概念;View Model則是與View緊密結(jié)合的Model類型;Input Model則是由用戶端或系統(tǒng)端輸入的Model,Input Model會和MVC的Model Binding機(jī)制協(xié)同合作,以提供簡便的數(shù)據(jù)輸入綁定方式。
以領(lǐng)域驅(qū)動設(shè)計(jì)為基礎(chǔ)的定義,DDD將Model分為三類,第一種是具有明確識別能力的Entities,第二種是可與其他Entity所共享的數(shù)據(jù)對象,稱為Value Object,第三種則是供應(yīng)Entity或Value Object所需數(shù)據(jù)的程序或是動作,稱為Service。
Model的設(shè)計(jì)
Model的設(shè)計(jì)方式主要是DTO(Data Transfer Object,數(shù)據(jù)傳輸對象),DTO是一個只有屬性成員的類對象,它只有默認(rèn)構(gòu)造函數(shù)以及屬性訪問器,沒有方法與其他成員,其任務(wù)是在進(jìn)程之間加載與傳輸數(shù)據(jù)用。