看了lifethinker的
一个简单例子:贫血模型or领域模型
颇受启发,提供一个典型的模型驱动的系统的架构图以及依赖图供讨论。与lifethinker的架构图不太一样的是:界面层(表示层)不单单依赖于应用层,也可以依赖于领域层,比如说直接调用Repository的方法,这样的简单场景如果再用应用层封装一下,就有点累赘了;另外,基础设施层除支持领域层以外,还用来支持应用层,如提供消息服务。按照DDD的分层定义,Infrastructure Layer:Provides generic technical capabilities that support the higher layers: message sending for the application, persistence for the domain, drawing widgets for the UI, and so on.
架构图:
依赖图:
另外对于架构分层,我的理解是:表示层是界面驱动的,应用层是用例驱动的,领域层是领域驱动的,而基础设施层是技术驱动的。或许按照这样的出发点去设计架构分层的话,会有一个比较明确的思路。