问题标签 [nested-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
286 浏览

c# - 你把集合类放在哪里?

我不确定是否已经有一个命名法,但是为了这个问题,让我们定义两个术语:对等实现或嵌套实现来说明如何在包含许多父/子实体关系的数据模型中实现集合类。

我使用术语对等来描述您在模型层中实现集合类以及实体类本质上使它们在您的 API 中对等的场景,如下所示:

这里的主要优点是您可以在碰巧存储相同类型的孩子的其他实体类中重用集合类。

我使用嵌套这个术语来描述您将它们实现为嵌套类的场景,如下所示:

这里的主要优点是每个父级都可以实现自己的集合类,以针对特定父级最优化的方式存储其子级。例如,一个父实体可能会发现数组数据结构运行良好,而另一个父实体可能会使用展开树(我知道这很模糊,但它很好地说明了我的观点)。

我注意到微软在各种 .NET 相关框架中都使用了这两种习惯用法。System.Windows.Forms 命名空间似乎严重依赖嵌套实现。我倾向于发现自己也更喜欢这种方法,即使它需要更多的工作。

建议、评论、替代想法?

0 投票
7 回答
24162 浏览

c# - 如何将嵌套类成员的访问限制为封闭类?

是否可以指定嵌套类的成员可以由封闭类访问,但不能由其他类访问?

这是问题的说明(当然我的实际代码有点复杂......):

我想阻止客户端代码创建 的实例JournalEntry,但Journal必须能够创建它们。如果我将构造函数公开,任何人都可以创建实例......但如果我将其设为私有,Journal将无法!

请注意,JournalEntry该类必须是公共的,因为我希望能够将现有条目公开给客户端代码。

任何建议将不胜感激!


更新:感谢大家的投入,我最终选择了IJournalEntry由私有类实现的公共接口JournalEntry(尽管我的问题中有最后一个要求......)

0 投票
4 回答
5656 浏览

c# - 嵌套 C# 类 - 从内部调用外部方法

我有一个名为 GamePlay 的 ViewController 类。在 GamePlay 中有一个名为 MyPinAnnotationView 的嵌套类。当调用 MyPinAnnotation 的方法 TouchesBegan() 时,我想从父 GamePlay 调用方法 CheckAnswer()。

我不想创建新的 GamePlay 实例,因为我已经设置了变量和实例。我可以通过某种方式访问​​父母吗?(事件监听器除外)

0 投票
3 回答
1536 浏览

c++ - Nested class forward declaration for template inheritance

What's the proper way to inherit from a template class with the template argument being a nested class within the inheriting class?

0 投票
3 回答
5394 浏览

c++ - 模板、嵌套类和“'&' 标记之前的预期构造函数、析构函数或转换”

在使用一些模板并为自己编写一个带有迭代器的基本容器类时,我发现自己需要将成员函数的主体从模板类移动到一个单独的文件中以符合样式指南。但是,我遇到了一个有趣的编译错误:

runtimearray.cpp:17: 错误: '&' 标记之前的预期构造函数、析构函数或类型转换 runtimearray.cpp:24: 错误: '&' 标记之前的预期构造函数、析构函数或类型转换 runtimearray.cpp:32: 错误: '&' 标记之前的预期构造函数、析构函数或类型转换 runtimearray.cpp:39:错误:'&' 标记之前的预期构造函数、析构函数或类型转换 runtimearray.cpp:85:错误:预期的构造函数、析构函数或类型转换在“RuntimeArray”之前 runtimearray.cpp:91:错误:预期的构造函数、析构函数或“RuntimeArray”之前的类型转换

运行时数组.h:

运行时数组.cpp:

我怎样才能让这些错误消失?这些文件对我来说很有意义,但可惜的是编译器的说法很重要。

0 投票
1 回答
3246 浏览

java - 从内部类的实例访问外部类属性

给定以下代码:

我可以用我的伪代码行交换什么,以便我可以比较 Inner 类的两个实例的 n 值?

尝试明显的解决方案 ( n != that.n) 无法编译:

0 投票
6 回答
38496 浏览

java - 接口中的内部类与类中

这两个内部类声明有什么区别?还评论优点/缺点?

案例A:类中的类。

案例B:接口内的类。

进行了更正:getvalue 方法的位置。

更多信息:我能够在另一个完全不实现接口的类中实例化 A 和 B 的 Items 类。

由于没有实例化接口,因此接口内的所有元素都可以通过点符号访问,而无需实例化 LEVELS 接口,这仅仅是因为您无法实例化接口 - 有效地使接口内定义的类对静态引用具有渗透性。

所以说如果 B 不是静态的 Items 类是没有意义的。由于案例 A 和 B 都以相同的方式实例化,因此我不是在寻找关于静态、内部或嵌套的语义。别再给我关于语义的答案了。我想要编译器、运行时和行为差异/优势,或者如果没有,那么就这么说。请不要再有关于语义的答案!!!!!!JVM 或 .NET VM 规范内部专家请回答这个问题而不是教科书语义学家。

0 投票
4 回答
1869 浏览

c# - 嵌套单例类

是否可以在 C# 中的非单例类中嵌套单例类,如果可以,在这种情况下对单例的生命周期是否有任何限制?

在我的应用程序设计中,这是有道理的,但在我真正实现它之前,我需要知道任何潜在的陷阱。

编辑:具体来说,我有一个基于计时器执行任务的作业主机。在NonSingletonClass这种情况下,是任务的实例化。SingletonClass是由 使用的数据存储库,NonSingletonClass但可以从外部修改NonSingletonClassSingletonClass存在以确保即使有多个NonSingletonClass实例,所有实例仍然只有一组指令和数据。

0 投票
1 回答
310 浏览

java - 接口、静态内部类和最佳实践

所以,这或多或少是一个编码风格的问题。我在这里使用 Bean Validation,但对于任何具有简单实现且不太可能经常更改的接口,这个想法都是相同的。

因此,PhoneNumberValidator 是这个特定验证器(或生产者方法或拦截器等)的实现,我们不太可能经常更改实现。

这是通过将实现和接口放在附近来为我的代码提供凝聚力的好方法,还是这是一种紧密耦合不应耦合的两段代码的代码气味?

你参与过类似的项目吗?如果是这样,它使事情变得更好还是更糟?如果没有,你会觉得这种做法令人困惑吗?

Community Wiki'd 因为它在征求意见。

0 投票
5 回答
1989 浏览

java - Java:返回静态嵌套类

我有一个静态嵌套类,我想通过静态访问器(getter)返回它。

我知道为什么这不起作用,因为 Columns 是一个类,而不是变量,但是,由于其他原因,我需要将列保留为静态类。我什至不确定这是否可行,但只想问是否有?

谢谢!