gpt4 book ai didi

java - 业务代表与服务定位器

转载 作者:行者123 更新时间:2023-12-04 05:14:56 26 4
gpt4 key购买 nike

Business Delegate 和 Service Locator 有什么区别。都负责封装查找和创建机制。如果 Business Delegate 使用 Service Locator 来隐藏查找和创建机制,那么 Business Delegate 专门用于什么,不能使用 Service Locator替换业务代表。

最佳答案

不知道你有没有checked this出来,但这是一个好的开始。

Use a Business Delegate to encapsulate access to a business service. The Business Delegate hides the implementation details of the business service, such as lookup and access mechanisms.

服务定位器封装了基于通用注册表搜索和/或获取特定服务的位置、限制和必填字段所需的逻辑。业务代表封装了一组相关的服务,并以一种内聚的方式公开它们,以防止服务客户必须搜索和访问与特定功能相关的所有服务。

另外,您可以避免客户必须真正了解服务定位器及其应该使用的服务,而将其留给特定的业务代表。客户端只需要该委托(delegate)来执行一组相关任务或依赖于各种服务的任务。


示例

业务委托(delegate)实际上并不封装一组服务定位器。它在服务定位器上提供了一个抽象层,以提供一个内聚的服务子集。通常只有一个服务定位器实例,多个实例需要一个额外的映射,您应该知道哪个服务定位器提供服务 X,将其视为您需要一个服务定位器定位器

一个例子应该有助于澄清事情。

考虑用户帐户管理。 UserBusinessDelegate 查找注册服务以注册用户,然后查找身份验证服务以允许登录。客户端只需要一个业务委托(delegate)来访问这些服务,他不需要知道 id两种服务。

这些服务 ID 封装在 UserBusinessDelegate 中,避免了声明 ID 和在任何地方使用服务定位器的需要。想一想,如果一个 service id 改变了会怎样?

在这种情况下,负责的业务代表会得到更新,避免对客户产生直接影响。

关于java - 业务代表与服务定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com