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不要不行,要了又无聊,怪不得你说它们地位尴尬。