在此多线程场景中使用哪种设计模式



我有3种算法 - 让我们称它们为a,b,C。这些都有自己的getter和setter方法,例如A可能具有getA()/setA()的B和C。有一个MainDriver类,该类可创建A,B或C的实例,这取决于该MainDriver类的命令行参数所传递的内容。 MainDriver类创建多个线程来执行创建实例的算法的方法。因此,当创建此算法实例时,它将此实例传递给扩展线程类的类,以便每个线程可以执行该算法的公共方法。


现在我的问题是我应该使用哪种设计模式来实现此体系结构?

线程类将如何知道哪种算法实例作为参数传递给它,并且相应地执行了哪种Getter和Setter方法?

首先您可以为所有算法创建层次结构。例如basealgo是接口,所有混凝土算法都将实现相同。

您的线程子类可以参考Basealgo("有关系"),您可以在传递给它的混凝土算法对象上调用方法。

任何事件/异步方向的"体系结构"将很容易解决您的问题,使您能够专注于业务代码而不是机械师。

告诉我我是否错了,但我们可以恢复您的规格:

  • 根据参数,执行特定程序
  • 所选程序必须在单独的线程中执行

例如,反应堆(现在与Spring的最后一个版本完全集成)提供了许多方法,以实现事件为导向的编程样式。

  1. 多线程将为您处理。您只关心池的配置(如果您需要特定的行为,但默认一个可以符合您的要求)
  2. 您只开发"算法"组件,这无非是执行某些特定代码的组件。这些组件中的每一个都会收听主计划所抛出的特定事件。别无其他。

相关内容

  • 没有找到相关文章

最新更新