不幸的是,C# 没有类似 C++ 的friend
. 因此,例如,为了解决经典的矩阵/向量乘法示例(其中可以通过使矩阵和向量成为朋友来提高效率,这样每个类都可以访问另一个类的私有成员),我必须定义班级成员internal
。
现在我了解自己了,不恰当的封装迟早会导致代码乱七八糟。因此,我想让internal
宇宙尽可能小。
这将导致非常小的组件。
这有什么缺点,还是没关系?
不幸的是,C# 没有类似 C++ 的friend
. 因此,例如,为了解决经典的矩阵/向量乘法示例(其中可以通过使矩阵和向量成为朋友来提高效率,这样每个类都可以访问另一个类的私有成员),我必须定义班级成员internal
。
现在我了解自己了,不恰当的封装迟早会导致代码乱七八糟。因此,我想让internal
宇宙尽可能小。
这将导致非常小的组件。
这有什么缺点,还是没关系?
回答标题中的问题:组件应该有多小?
对组件的尺寸没有特殊要求或建议*。
*由于需要在更多地方查找信息,理论上疯狂数量的程序集(可能以数千计)可能会减慢加载速度。
挑选尺码时考虑:
如果您不喜欢内部原因,它太开放了(对您的 api 的其余部分而言),请将那些需要彼此开放的类作为一个单独的微程序集,其中仅包含这一小组类。您始终可以将该程序集嵌入到您的主 api 程序集中。
这既应该让你的类对彼此开放,又不能让其他任何人进入(除非他们公然忽略你的程序集结构,并且在你的辅助程序集中放置的东西比它的名字所暗示的要多。但是谁会做这样的事情?! :)