【发布时间】:2017-04-04 03:53:18
【问题描述】:
假设我有一个名为 Program 的类,它由 Expression(s) 的数组列表 + 一个 name 属性组成,如下所示:
public class Program extends Expression {
private String _name;
/*Storage for expressions.*/
List<Expression> _expressions = null;
/*Program constructor*/
public Program(String name) {
_name = name;
_expressions = new ArrayList<Expression>();
}
然后我有一个名为解释器的类,它应该将输入转换为类 Program 的对象,并且还应该存储这些对象,并将名称与它们相关联。
public class Interpreter implements Serializable {
Program _program;
public Interpreter(){
}
public void createProgram(String program_name){
Program program = new Program(program_name);
_program = program;
}
我的问题是,如果 Program 类已经具有我需要的 name 属性,那么像我上面所做的那样存储对象是否是不好的做法,甚至是可行的,并且当我需要它或者我应该创建时只需通过它的名称引用对象解释器类中的 Program 类型的数组列表来存储这些。
我在理解 OOP 的一些概念时遇到了一些麻烦,我想知道我是否只是通过解释器继续创建 Program 类型的对象并且以后不要在任何地方引用它们,它们最终会消失吧?
例如,我还应该能够通过这样的方法从解释器中获取程序。
public Program readProgram(String filename){
return getProgram(filename);
}
【问题讨论】: