3

我的应用模型由疾病组成,每种疾病都有先天属性(id、姓名、发病率等)以及与其他疾病的关系(例如风险因素、诱发疾病、发现)。我考虑了以下两个对象模型:

第一个:嵌套类:

class DiagnosticElement{
      Disorder disorder;
      List<Disorder> relatedDisorders;

      static class Disorder {
          int id;
          String name;
          double incidence;
          Disorder(id){
              this.id=id;
          }

    }
}

第二:

class Disorder {
        int id;
        String name;
        double incidence;
        List<Disorder> relatedDisorders;

        Disorder(id){
            this.id=id;
            this.relatedDisorders=new ArrayList<Disorder>()
        }

    }

第二种方法似乎更简单。当然,我必须先实例化 Disorder 对象,然后才能在 ArrayList 中引用它们。一种方法比另一种更好吗?

4

2 回答 2

7

方法二没有错,事实上它经常被使用。例如,考虑树或链接列表,其中节点保存到其他节点的链接。如果在构造函数中创建相同类型的对象,则必须小心,因为这可能导致代码永远运行。

于 2013-05-24T00:40:47.437 回答
0

小心,你的线

List<Disorder> relatedDisorders=new ArrayList<Disorder>()

在构造函数中将创建一个局部变量relatedDisorders,您将对其进行初始化。您没有初始化类字段。

无论如何,在你的类中引用你自己的类并没有错。这就是每个链表的工作方式。

于 2013-05-24T00:41:53.877 回答