在一个单独的类中组合不同JAVA类的最佳方法是什么?

时间:2015-02-12 00:13:23

标签: java list dictionary

我有3个不同的JAVA类,命名为A,B,C。所有这些类都包含彼此的引用对象或对象列表。我的主要目标是将所有这些类组合成一个单独的JAVA类(A)。请在下面找到结构:

public class A {

    private B b;
    ...

}

public class B {
    private List<C> c;
    ...

}

public class C{
    private TreeMap<int, int> t;
    ...
}

由于我是JAVA的新手,我不确定如何将这些组合成一个单独的课程&#39; A&#39;?专家请在这种情况下帮助我。

2 个答案:

答案 0 :(得分:2)

这是组合[单个Java类(A)]的类:

public class A {
    private A b;
    private List<A> c;
    private TreeMap<Integer, Integer> t
    ...
}

现在,对于一些OOP最佳实践咆哮。您需要将每个班级视为具有单一责任(single responsibility principle)。如果你说,“这个课程那个”。然后它有太多的责任。关键词是“和”。它意味着多重责任。如果你可以肯定地说,这些类中的每一个都有一个共同的责任,那么我想将它们连接在一起是可以的。但是,我怀疑是这样的。为了让它们分裂,它似乎做得更多。

答案 1 :(得分:1)

首先,您的代码无法编译,我们不会使用TreeMap<int, int>,只有使用对象,它才会Javadocs

  

集合表示一组对象,称为其元素。

否则。关于你的评论,你的代码似乎已经足够好了:

  

使用JAVA集合进行简单练习并找到最佳效果   同样的做法。这个问题似乎是地图清单,但我   想知道这是否是最优化的方式   不?

您的问题与优化使用集合无关,但如果您不愿意在其他课程中使用class Bclass C,那么您可以像这样使用inner classes

class A {

   private B b;

   class B {
       private List<C> c;
       ....
    }
    class C {
       private TreeMap<Integer, Integer> t;
       ....
    }
}

有关如何使用内部类的更多信息,可以找到here