facade模式和服务层模式的区别



facade模式和服务层模式之间究竟有什么区别?

对于facade模式,你可以找到这样的定义:facade将复杂的子系统封装在一个简单的接口后面。它隐藏了许多复杂性,使子系统易于使用。

因此facade类将复杂的业务逻辑封装到易于使用的方法中。

但是服务层模式不做同样的事情吗?

立面是一种结构设计模式。服务层是一种架构设计模式。服务层用于组织服务,以便属于同一层的服务共享功能,从而强制将相关服务在逻辑上分组,并处理较小的活动集。虚包提供了一个接口,它掩盖了更复杂的底层代码,但它本身并不关心服务是如何组织的。

例如,假设你有一个网上商店。当你点击"购买"按钮时按钮,这可能会调用单个buyProducts()方法,但在该方法中,您可能会调用ProductAvailabilityService,它告诉您想要购买的产品是否仍然可用,PaymentService实际管理付款,EmailNotificationService向您发送带有购买详细信息的电子邮件。这是一个门面。

现在,想象你有一家医院。你还可以检索病人的病史,病人目前的处方药,等等。这些可能都属于患者服务层。而医生检查预约的服务可能属于医生服务层。

所以简而言之,一个模式关注服务的逻辑组织,而另一个模式关注如何简化一个或多个服务的使用。

最新更新