Model的类型
ASP.NET的大师级人物Dino Esposito将ASP.NET MVC内使用到的Model分类为三种:分别是Domain Model, View Model与Input Model。Domain Model是以数据源为主的Model,融入了领域驱动设计的概念;View Model则是与View紧密结合的Model类型;Input Model则是由用户端或系统端输入的Model,Input Model会和MVC的Model Binding机制协同合作,以提供简便的数据输入绑定方式。
以领域驱动设计为基础的定义,DDD将Model分为三类,第一种是具有明确识别能力的Entities,第二种是可与其他Entity所共享的数据对象,称为Value Object,第三种则是供应Entity或Value Object所需数据的程序或是动作,称为Service。
Model的设计
Model的设计方式主要是DTO(Data Transfer Object,数据传输对象),DTO是一个只有属性成员的类对象,它只有默认构造函数以及属性访问器,没有方法与其他成员,其任务是在进程之间加载与传输数据用。