关于Domain Model的对谈录之二: 充血模型中的Service Facade
A: 充血模型中的Service Facade地位会有点尴尬 B: 讲什么东西啊?说清楚点! A: 别急嘛,比如说 在Transaction Script模式下,表现层一般通过 类似于“XXXService” 的Facade来调用业务层的服务,是不是? B: 是啊。不过在充血模型中,已经没有Transaction Script了,也就是说表现层就要直接通过调用Domain Object来获取服务了。 A: 对。 B: 这有什么不好? A: 那还用说吗, 层和层之间的接口应该尽量单一和集中嘛,这样才能体现封装性嘛。 B: 哦,是。不过我们可以仍然保留一些很薄的Transaction Script作为Service Facade,这些Facade自己不实现业务逻辑,而只是给Domain Object做二传手。 A: 是。但 Facade一般怎么做二传呢?基本上都是在复制Domain Object的方法签名!,简直无聊死。 B: 这类Facade不要不行,要了又无聊,怪不得你说它们地位尴尬。