繁体   English   中英

在一个类中存储一个类的多个对象

[英]Storing multiple objects of a class in another

假设我有一个名为Program的类,该类由Expression的数组列表+ 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属性,并且像上面那样存储对象是否是不好的做法,甚至可行,并且仅在需要时使用对象名称引用对象,或者是否应该创建数组列表,解释器类中的程序类型的“ of”来存储这些。

我在围绕OOP的一些概念时遇到了麻烦,我想知道是否只是继续通过解释器创建Program类型的对象,以后再不引用它们,它们最终会消失吗?

例如,我还应该能够通过诸如此类的方法从解释器中获取程序。

  public Program readProgram(String filename){
       return getProgram(filename);
}

这取决于应用程序设计。 例如,检查Expression是否可以作为程序的一部分,您需要考虑以下几点:

  • 表达式可以独立存在吗?
  • 表达式可以链接到多个程序吗?

如果以上任何一个问题的答案为是,那么我们需要具有独立的Expression实体,并且可以存储Expression和Program之间的映射。

现在,存储在“名称”属性的问题, Program ,我会建议在看看这个苏答案和这个文章基本上解释组成之间的差(即你已经尝试了一个)和继承(另一种方法) 。

如果所有实体共享相同的属性(例如名称,创建日期等),则建议创建一个Abstract类,并使这些类扩展该类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM