我们正在讨论应该将什么放在外观层中,以及外观层应该对底层进行多少调用。
在我们的项目中,我们有一个协调层来协调对服务和数据库的调用。我们还有一个业务层,其中包含业务规则和计算。
我们的外观层有一个安全检查、日志记录和错误处理。
现在的问题是:外观应该只有一个对编排层的调用,还是可以有多个调用。如果它只是一个单一的调用,那么这些层应该合并成一个单独的层。
这些是用C#编写的WCF服务。
发布于 2011-08-15 21:27:57
只要调用(在调用者的眼中)只做一个操作并且完全完成,外观中的调用次数就不应该有什么关系。
请记住,对调用者的单个操作可能包括日志记录、运行业务规则、打开到数据库的连接、写入数据库,最后关闭并清除连接。
发布于 2011-08-15 21:49:42
我支持Justin的回答,我只补充了一个考虑因素。如果您的编排层也处理业务层,并且如果您的外观最终是编排任务的一对一映射,那么您可以考虑将编排作为您的外观。但在这种情况下,您不会问,所以要么外观简化了编排使用协议,要么编排和业务层是对等的。在这两种情况下,您都需要一个与编排模块不同的外观
发布于 2011-08-16 08:55:30
如果只是一个调用,则为
。
外观层和编排层是松散耦合的吗?如果是这样的话,我的回答是“不”,不要合并。仅从原则的角度来看,我认为松散耦合是有价值的,应该保留它。
应该让外观只有一个对编排层的调用,或者可以有多个调用。
当它发出多个调用时-它正在做的事情与编排层正在做的事情有什么不同。想想他们活着的理由。
但是,我允许在纯“业务”调用和“交叉”调用之间进行区分。通过建立只允许一个“业务”调用“通过”Facade的约定,您可以保持业务服务的结构清晰(永远不会有任何混淆);但另一方面,您也不会受到技术上的限制,不能进行其他增强系统行为和功能的横切调用。
https://stackoverflow.com/questions/7065403
复制相似问题