Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 什么时候应该使用嵌套类?_Oop - Fatal编程技术网

Oop 什么时候应该使用嵌套类?

Oop 什么时候应该使用嵌套类?,oop,Oop,我有一个写iCal事件的类,它包含公共的嵌套类。该类对于iCal中的组件(如事件、报警等)来说是基本复杂的类型,将其公开为程序其余部分使用的嵌套类是有意义的 我曾读到,拥有公共嵌套类是糟糕编程的标志。为什么不好?什么时候适合嵌套类?这是我的全部想法,但来自于对他人创作的15年分析: 如果嵌套类是私有的,并且没有被包含类的公共接口公开,那么这是合适的 例如,一个链表类将在其内部嵌套一个链表节点类,该类特定于实现内部,但不会向链表类的使用者公开 否则,我就不会麻烦了,因为这只会增加不必要的复杂性 举

我有一个写iCal事件的类,它包含公共的嵌套类。该类对于iCal中的组件(如事件、报警等)来说是基本复杂的类型,将其公开为程序其余部分使用的嵌套类是有意义的


我曾读到,拥有公共嵌套类是糟糕编程的标志。为什么不好?什么时候适合嵌套类?

这是我的全部想法,但来自于对他人创作的15年分析:

如果嵌套类是私有的,并且没有被包含类的公共接口公开,那么这是合适的

例如,一个链表类将在其内部嵌套一个链表节点类,该类特定于实现内部,但不会向链表类的使用者公开

否则,我就不会麻烦了,因为这只会增加不必要的复杂性


举个例子,如果你的课程被iCal event类曝光,我会将你所有的课程改为普通课程。

这都是我的想法,但来自于对他人创作的15年分析:

如果嵌套类是私有的,并且没有被包含类的公共接口公开,那么这是合适的

例如,一个链表类将在其内部嵌套一个链表节点类,该类特定于实现内部,但不会向链表类的使用者公开

否则,我就不会麻烦了,因为这只会增加不必要的复杂性

为了您的示例,如果iCal事件类公开了所有类,我会将它们更改为普通类