我想为线性程序求解编写一个库。因此使用了几个求解器,例如 cplex 或 gurobi。我已经拥有的是它们每个的接口(都包含将它们包装到求解器特定代码的相同函数)。
现在我想要一个类'LinearProgram',它可以通过LinearProgram("cplex")实例化,然后调用cplex求解器。
我的第一个想法是使用超类“求解器”,它是所有求解器接口的基类,包含作为虚拟声明的相应函数。但是后来我得到了一个无法实例化的抽象类。所以在 LinearProgram 我想要一个变量 Solver ,它根据构造函数中给出的字符串进行实例化。
我确信一个适当的解决方案是很明显的,但我现在所能想到的并不令人满意。
谢谢你的帮助。