gpt4 book ai didi

java - 两个模块和一项服务。如何处理?

转载 作者:行者123 更新时间:2023-12-02 10:53:26 35 4
gpt4 key购买 nike

情况:
模块A;模块B;服务;

模块A需要service.getSomething()
模块B需要service.getSomethingSimilar()

有一些实现变体。其中一些是:

<小时/>

=1=
在模块 A 中实现一个服务,并在其中创建方法 getSomething
在模块 B 中实现一个服务,并在其中创建方法 getSomethingSimilar

优点:
您没有获得模块相互依赖性

缺点:
因为这两种方法非常相似,所以基本上是重复代码。

<小时/>

=2=
使用模块 A 中的两个方法实现一个服务,并在模块 B 中使用该服务。

优点:
没有代码重复
两种方法都在同一个服务中

缺点:
模块相互依赖

<小时/>

那么针对这种情况最好的方法是什么?

最佳答案

我认为你可以使用策略设计模式来解决这个问题

有一个服务接口(interface)getSomething()然后创建一个服务实现 getSomethingImpl()

模块 A 和 B 都将为调整到它们的 getSomething 接口(interface)提供自己的实现,现在,您可以将 getSomethingImpl 设置为两个模块所需的实现,如果需要,您可以稍后创建新的实现

这种方法结合了两者的优点,因为它减少了冗余并减少了耦合,即 2 之间的相互依赖

可能的缺点是,虽然代码现在更容易维护,但此实现需要一些额外的类和代码

引用:https://en.wikipedia.org/wiki/Strategy_pattern

关于java - 两个模块和一项服务。如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982030/

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