gpt4 book ai didi

java - 设计: How to drive a dynamic set of similar classes from a program

转载 作者:行者123 更新时间:2023-12-01 10:12:11 24 4
gpt4 key购买 nike

我必须在我的应用程序中做出设计决策。以下是场景。

我有一组服务类,它们分布在我的应用程序中的不同 Maven 模块中。

public class ServiceA 
{
public void startA()
{
....
}
}

public class ServiceB
{
public void startB()
{
....
}
}

我目前有 8 个这样的服务类。将来可能会添加更多。

所有这些服务类的启动都必须在驱动程序中调用。服务的数量可能会随着时间的推移而变化。当它发生变化时,我想避免更新驱动程序。

我曾考虑过让服务实现一个接口(interface)。但是在运行时,服务列表需要可供驱动程序启动它们。

驱动程序是应用程序启动时第一个执行的,预计会启动服务。

请建议如何解决此问题。

最佳答案

您可以扭转局面,让所有服务自行向驱动程序注册。

它们都可以是注入(inject)驱动程序的 spring beans。

如果您不希望服务了解驱动程序,您可以为它们引入一个依赖于服务和驱动程序的中间人,或者您可以通过 @Configuration 类来实现。

更新:

您可以使用 ServiceLoader 类来定位您的服务,看看这个 tutorial

这是一个使它更容易使用的库:ServicePluginLoader

关于java - 设计: How to drive a dynamic set of similar classes from a program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075940/

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