第一层是数据持久层,负责处理映射和访问关系数据库。
第二层负责处理对象在所有情况下的固有行为。
第三层放置特定应用程序的功能。
第四层定义公共接口,隐藏了第一、二、三层的所有实现细节。
每层都有很好的定义,清楚实现了关注点的分离,这样的分层要求每个层都放到单独的一组包中,并根据标示惯例来命名,这样一下子把所有的注意力都吸引到分层上来,领域开发人员尽量避免创建更多Module,因为每个模块都要乘以4。而且重构模块的影响范围太大,几乎不能更改模块。
由于分层,很难跟踪定义了一个概念的所有数据和行为,而且还要考虑分层产生的间接关系,因此开发人员没有多少精力考虑模型。只是基本满足了应用程序数据访问的需求,通过几个service提供了一些行为,项目从MODEL-DRIVER-DESIGN获得的益处很少,代码没有清晰的揭示模型,开发人员也无法充分利用模型。
这种框架尝试解决两个合理的问题:
问题的关注点的划分,一个对象负责数据库访问,另一个负责处理
网友评论