我正在写一个计算器。有一个叫做运算符的包,我已经在其中实现了四个主要的运算符(+, - ,*,/); 我有另一个名为OperatorsCatalog的类,它包含已知运算符的映射;我在其构造函数中为它们创建实例,并将它们添加到映射中。 现在我想知道另一个开发人员如何传递一个已经实现了自己的new operator的NewOperator.jar文件。我可以将这个新的运算符添加到我的地图中,以便在计算时,new运算符存在于map.how中我可以不改变我的OperatorsCatalog代码吗? 我是用java编写的
答案 0 :(得分:0)
也许继承运算符并在super
构造函数中执行加法?这样,任何扩展Operator
的任何实例化都会自动将其添加到地图
public abstract class Operator {
protected Operator() {
// add to map here
}
...
}
答案 1 :(得分:0)
如果我没有错,你希望能够在类路径中发现新的Operator类,请看看这个问题。
Can you find all classes in a package using reflection?
另外你&新开发人员需要修复一个关于如何编写新的Operator类的合同。