【问题标题】:what is the best way to combine different JAVA classes in one single class?将不同的 JAVA 类组合在一个类中的最佳方法是什么?
【发布时间】:2015-02-12 00:13:23
【问题描述】:

我有 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 新手,我不确定如何将这些组合成一个单一的“A”类?在这种情况下,请专家帮助我。

【问题讨论】:

  • 我认为在这种情况下,比您所写的更通用一点可能会有所帮助。 A、B 和 C 在您的程序中代表什么?列表/树/引用的用途是什么?
  • 还有,你为什么要这样做?
  • 拥有 3 个单独的类看起来已经足够好了。为什么需要将它们结合起来?
  • 我只是想用 JAVA 集合做一些简单的练习,并找出最佳实践。这个问题似乎是地图列表,但我想知道这是否是最优化的方法?
  • @Richard - 我不同意,让 C 扩展 B 会承认 C 实际上是 B 的一种,这不是作者所展示的。

标签: java list dictionary


【解决方案1】:

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

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

现在,谈谈 OOP 最佳实践。您需要将每个类视为具有单一职责(single responsibility principle)。如果你说,“这个类做了这个那个”。然后它有太多的责任。关键词是“和”。它意味着多重责任。如果你可以有把握地说,这些类中的每一个都有一个单一的职责,那么我想将它们结合在一起是可以的。但是,我怀疑情况是否如此。自从让他们分开以来似乎赚得更多。

【讨论】:

    【解决方案2】:

    首先,你的代码不会编译,我们不使用TreeMap&lt;int, int&gt;,集合只使用Objects,它是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找到。

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 2013-08-25
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2011-02-27
      • 2010-12-22
      相关资源
      最近更新 更多