我有3种算法 - 我们称之为A,B,C。每种算法都有自己的getter和setter方法,例如:对于B和C,A
可能有getA()
/ setA()
。
有一个MainDriver
类,它根据作为此MainDriver
类的命令行参数传递的内容创建A,B或C的实例。
MainDriver
类创建多个线程来执行创建其实例的算法的方法。因此,当创建此算法实例时,它会将此实例传递给扩展Thread类的类,以便每个单独的线程可以执行该算法的公共方法。
现在我的问题是我应该使用哪种设计模式来实现这种架构?
线程类将如何知道哪个算法实例作为参数传递给它,以及相应的哪个getter和setter方法?
答案 0 :(得分:0)
首先,您可以为所有算法创建层次结构。例如BaseAlgo是界面,所有具体的Algos都将实现相同的目标。
你的Thread子类可以引用BaseAlgo(“有一个关系”),你可以调用传递给它的具体Algo对象的方法。
答案 1 :(得分:0)
任何事件/面向异步的“架构”都可以非常轻松地解决您的问题,使您能够专注于业务代码而不是机制。
告诉我,如果我错了,我们可以恢复你的规格:
例如,Reactor(现在与Spring的最新版本完全集成)提供了许多方法来实现面向事件的编程风格。