【发布时间】:2013-02-08 21:44:20
【问题描述】:
我读得越多,我就越困惑。
请注意,所有问题都与服务和外观如何适应 MVC 模式有关。
我的理解是,Facade 不是一个超级智能的对象,它只是暴露一个简单的接口/api 来执行复杂操作的一种方式(例如:执行 10 美元的支付,它是一个复杂的操作,涉及许多操作,但这种复杂性可以通过外观来处理,它只会以特定的顺序调用相应的对象......等等......)
现在,服务是一种调用多个 DAO 以获得复杂数据结构的方法(我对此不太确定,但这是我目前所了解的)。
那么问题是,门面和服务有什么区别?归根结底,Facade 可以通过提供一个简单的接口完美地访问多个 DAO 以执行复杂的操作,而服务似乎是类似的东西。
事务也是如此,我知道服务是开始事务的地方,但我同样认为它们也可以放在外观上,毕竟一个外观也可能调用多个 DAO。
那么哪个堆栈更有意义
控制器外观道 控制器服务道
或许
controller-facade-dao 有时还有 controller-facade-service-dao ??
【问题讨论】:
-
Façade 一般应用在业务上,使你的应用程序的 api。数据服务只是您的服务。除此之外,您可以在代码中的许多地方使用 Façade。制作 SAL。所以它变成了一个服务访问Api。 Façade 是 Api 的一种模式。
-
Facade 和 A 服务之间的主要区别在于服务实际上做了一些事情,即类定义实际上包含执行某些逻辑的管道。除了将实际工作委派给管道中的服务所需的任何内容之外,IMO 干净的外观不应该包含任何逻辑。
-
通过使用控制器 dao,您无需将请求处理与逻辑分开。通常使用门面将 dto 对象转换为实体,并使用 dao 来持久化数据。 dao 类从实体中分离出 dto 对象和控制器。业务逻辑也在具有单一职责的外观中执行。 controller-facade-dao 是必须的,也可以使用服务..
标签: java spring model-view-controller design-patterns facade