关于暴露业务模型(Exposed Domain Model Pattern) 这个问题涉及到企业应用社区中许多流行了好多年的热门词:POJO,DTO(VO),FAÇADE。这个问题非常复杂,比贫血模型更易引起争论;其中由方法论层面上的问题,也有技术层面的问题,在这里也无法给出全面的分析,那就只能谈几点认识,可能带有一些倾向性,其实这类问题本来就有一个价值选择的问题。这些倾向和选择也都是缘于实际的体会。
我首先注意到一点,Exposed Business Model Pattern说法的出现实际上跟Domain Driven 以及 Model Driven有直接的关系,实际上它们之间也的确有内在的联系,可以这样说:Exposed Business Model Pattern使前者的驱动力量贯通所有的三个层。持久层集中反映模型的静态结构,业务逻辑曾集中反映模型的动态行为,那末,表现很自然地应该直接地去渲染模型,从这个角度看问题,应该承认模型暴露的基本合理性。这是其一。另外一点是,历史上DTO(VO)\FACADE模式在J2EE体系中的扩张,如果稍加留意就能看出,其根源很大程度上来自于某些技术的局限性(其中一些局限现在仍然存在),而随着领域驱动、模型驱动等方法论的深入以及一些技术、平台的发展,相当一些原因已经流失了。