我应该在Java中嵌套这些类吗?

吉米·P

我有两节课。刚开始时,从逻辑上讲,将它们嵌套是有意义的,因为它们直接相互关联:

class ClassA
{
    List<ClassB> list = new ArrayList();

    public boolean add(ClassB cB)
    {
        return list.add(cB);
    }

    public ClassB get(int index)
    {
        return list.get(index);
    }

    class ClassB
    {
        public int test()
        {
            return 123;
        }
    }
}

随着我的进步,我开始怀疑是否最好不要嵌套它们。如果我想向ClassA添加构造函数,例如:

public ClassA(List<ClassB> list)

这会造成困难。为了创建要传递给构造函数的列表,需要我拥有一个当时可能没有的ClassA实例,这将首先破坏了拥有此类构造函数的目的。

从逻辑上讲,我只会将ClassB与ClassA结合使用,但是我可能需要直接引用ClassB,而不必使用ClassA实例。我应该嵌套这些类还是将其分开?

托尼·加加罗(Toni Gargaro)

如果在ClassA实例不可用时要引用ClassB,则不要嵌套ClassB。

如果要嵌套,则将需要一个对象ClassA来访问ClassB,因为它只能存在于ClassA实例中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在C ++的类中存储引用吗?

来自分类Dev

我应该在c ++的派生类中继承嵌套类吗?

来自分类Dev

我可以/应该在Kotlin中顺序编写这些相互依赖的Volley调用吗?

来自分类Dev

我应该在嵌套块中使用weakSelf吗?

来自分类Dev

我应该在android类中为计算字段定义属性或函数吗?

来自分类Dev

我应该在域类中实现equals和hashCode吗?

来自分类Dev

我应该在模板类头文件中包含所需的所有内容吗?

来自分类Dev

我应该在单元测试时从正在测试的类中调用方法吗?

来自分类Dev

我应该在C#中通过属性设置器分配类字段吗?

来自分类Dev

我应该在模板类头文件中包含所需的所有内容吗?

来自分类Dev

我们应该在基类中“ super()”吗?

来自分类Dev

我应该在android类中为计算字段定义属性或函数吗?

来自分类Dev

辅助函数应该在类中吗?

来自分类Dev

我真的应该在每个路由模块文件中重复所有这些要求吗?

来自分类Dev

我真的应该在每个路由模块文件中重复所有这些要求吗?

来自分类Dev

我应该在Java中使用Clone方法吗?

来自分类Dev

我应该在模型中抛出HttpStatus异常吗?

来自分类Dev

我应该在交易中包含SELECT吗?

来自分类Dev

我应该在表示层中抛出异常吗?

来自分类Dev

我应该在onDestroyView中删除OnClickListener吗?

来自分类Dev

我应该在virtualenv中安装python 3吗?

来自分类Dev

我应该在Rust中返回等待吗?

来自分类Dev

我应该在C ++中删除静态对象吗

来自分类Dev

我应该在virtualenv中安装python 3吗?

来自分类Dev

我应该在系统中杀死僵尸进程吗?

来自分类Dev

我应该在onDestroyView中删除OnClickListener吗?

来自分类Dev

我应该在备份中包含/ dev吗?

来自分类Dev

我应该在Java 8中使用哪个日期类?

来自分类Dev

我应该在Java HashMap中为String键覆盖equals()和hashCode()吗?

Related 相关文章

  1. 1

    我应该在C ++的类中存储引用吗?

  2. 2

    我应该在c ++的派生类中继承嵌套类吗?

  3. 3

    我可以/应该在Kotlin中顺序编写这些相互依赖的Volley调用吗?

  4. 4

    我应该在嵌套块中使用weakSelf吗?

  5. 5

    我应该在android类中为计算字段定义属性或函数吗?

  6. 6

    我应该在域类中实现equals和hashCode吗?

  7. 7

    我应该在模板类头文件中包含所需的所有内容吗?

  8. 8

    我应该在单元测试时从正在测试的类中调用方法吗?

  9. 9

    我应该在C#中通过属性设置器分配类字段吗?

  10. 10

    我应该在模板类头文件中包含所需的所有内容吗?

  11. 11

    我们应该在基类中“ super()”吗?

  12. 12

    我应该在android类中为计算字段定义属性或函数吗?

  13. 13

    辅助函数应该在类中吗?

  14. 14

    我真的应该在每个路由模块文件中重复所有这些要求吗?

  15. 15

    我真的应该在每个路由模块文件中重复所有这些要求吗?

  16. 16

    我应该在Java中使用Clone方法吗?

  17. 17

    我应该在模型中抛出HttpStatus异常吗?

  18. 18

    我应该在交易中包含SELECT吗?

  19. 19

    我应该在表示层中抛出异常吗?

  20. 20

    我应该在onDestroyView中删除OnClickListener吗?

  21. 21

    我应该在virtualenv中安装python 3吗?

  22. 22

    我应该在Rust中返回等待吗?

  23. 23

    我应该在C ++中删除静态对象吗

  24. 24

    我应该在virtualenv中安装python 3吗?

  25. 25

    我应该在系统中杀死僵尸进程吗?

  26. 26

    我应该在onDestroyView中删除OnClickListener吗?

  27. 27

    我应该在备份中包含/ dev吗?

  28. 28

    我应该在Java 8中使用哪个日期类?

  29. 29

    我应该在Java HashMap中为String键覆盖equals()和hashCode()吗?

热门标签

归档