我读得越多,我就越困惑
请注意,所有问题都与服务和外观如何适应MVC模式有关。
我的理解是,外观不是超级智能的对象,它只是一种公开简单接口/api来执行复杂操作的方式(例如:执行10美元支付,这是一个涉及多个操作的复杂操作,但这种复杂性可以由外观处理,它只会调用特定order...etc中的相应对象……)
现在,服务是一种执行对多个DAO的调用以获得复杂数据结构的方法(我对此不太确定,但这是我到目前为止所理解的)。
那么问题是,外观和服务之间的区别是什么?归根结底,facade可以完美地访问多个day,以便通过提供一个简单的接口来执行复杂的操作,并且服务似乎类似于某些东西。
事务也是如此,我知道服务是开始事务的地方,但我同样觉得它们也可以放在facade上,毕竟,一个facade也可以调用多个DAO。
那么哪个堆栈更有意义呢
控制器-门面-道控制器-服务-道
或者也许
controller-facadade-dao,有时是controller-facade-service-dao ??
发布于 2013-02-26 12:52:13
是的,Facade和Service并不是完全无关的。有时,我们将服务层实现为外观,这样客户端就不会为服务的许多细节而烦恼。服务的调用/接口越简单,客户端代码就越简单。
马丁·福勒说。
从对接客户端层的角度来看,
服务层定义了应用程序的边界Cockburn PloP及其可用操作集。它封装了应用程序的业务逻辑,控制事务并在其操作的实现中协调响应
因此,服务层有时被用作外观。
Ref
https://stackoverflow.com/questions/15038324
复制相似问题