首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我有一个接口(域端口)与几个实现(非域适配器)。选择使用哪个适配器的逻辑在哪里?

我有一个接口(域端口)与几个实现(非域适配器)。选择使用哪个适配器的逻辑在哪里?
EN

Stack Overflow用户
提问于 2022-08-10 23:13:01
回答 1查看 41关注 0票数 1

假设我有一个需要调用客户端(定义为接口、端口)的用例。

我想对该端口使用一个或另一个实现(适配器);选择使用哪一个取决于业务逻辑--例如,用户的国家,或者更复杂的计算。

在设计模式方面,那种感觉就像工厂的味道;我只需要输入一个函数来返回接口,并且它的逻辑会根据特定的条件返回不同的实现。

但是,我很难将它与我的架构知识以及什么是域和不是域的知识集成在一起:

如果我创建一个域函数在一个适配器或另一个适配器之间进行选择,则需要将适配器(非域代码)导入到我的域中,以便返回正确的适配器。这是错误的,因为我让实现成为业务逻辑的一部分。

另一方面,我可以有一个“适配器适配器”:我通过端口“泄漏”了选择适配器所需的数据,作为协议的一部分,我只有一个“包装器适配器”,用于该端口,它将调用重定向到任何可能的第三个适配器之一。这也是错误的,因为我在域中有业务逻辑(如何选择一个适配器或另一个适配器),以及适配器调用其他适配器(?)。。

我该如何解决这个问题?还有第三种选择我看不到吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-22 15:38:52

如果适配器实现的接口(业务逻辑)提供了工厂决定使用哪个实现所需的信息,那么工厂也可以是业务逻辑。

在您的示例中,接口可以提供一个API,提供可以用于实现的国家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73313672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档