我有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;?专家请在这种情况下帮助我。
答案 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 B
和class C
,那么您可以像这样使用inner classes
:
class A {
private B b;
class B {
private List<C> c;
....
}
class C {
private TreeMap<Integer, Integer> t;
....
}
}
有关如何使用内部类的更多信息,可以找到here。