为了创建算术求值器,我必须创建一个工厂,它接受一个字符串作为参数,并根据字符串返回一个不同类型的变量。
例子:
TypeFactory.make("int") return int i=0;
TypeFactory.make("float") return float f=0;
我想到了许多不同类型的实现,但似乎没有一个可行:
我可以创建一个类 Type 及其子类 Float 和 Int,它们将由工厂返回,但是我怎样才能以通用方式获取类中的值(如 Type.getVal(),它不存在,所以我不能在我的程序的其余部分使用它)
我希望我的问题很清楚(对我来说甚至不是很清楚!)
有人有什么想法吗?谢谢
编辑:
当我意识到这个问题很难理解时,我将以更一般的方式解释我必须做什么。
目标是评估文件中的算术表达式。示例:
int a;
float b;
float c;
a=1;
b=6;
c=a+b;
那是我的档案。我的程序将从这些表达式构造一棵树。为此,我使用 Composite 和 Visitor 模式。但是我的问题是,我必须先区分每种类型,以便在访问者进行操作时知道哪个变量属于哪个类型,并且能够得到正确类型的结果。