【发布时间】:2012-09-19 05:10:02
【问题描述】:
我正在处理一些从其中一个示例派生的 MonoTouch 代码(这不是 MonoTouch 特定问题),并且示例代码在另一个类中声明了一个私有类。我还没有看到在 c# 中大量使用私有类,我不知道它什么时候才有意义。我可以看到一个只在另一个类中引用的类是如何被声明为私有的,但这不会导致比它的价值更多的悲痛吗?这不会违反一些 SOLID 原则吗?
- 单一职责 - 损坏?
- 打开/关闭 - 损坏?
- Liskoff 替换 - 也许可以?
- 接口隔离 - 损坏?
- 依赖倒置 - 损坏?
现在,由于私有类的定义,我发现仅仅试图导航源代码会让人感到困惑。我想这可以通过声明一个包含私有类的部分类并将它们分成单独的文件来缓解,但这真的是一个好方法吗?
【问题讨论】:
-
标准答案,视情况而定。显然,这非常依赖于嵌入式类用于实现什么。如果嵌入类可以独立于封闭类进行更改,那么这不是违反 SRP 吗?
-
嵌入式类不(不能)对外界承担任何责任。它是微宇宙的一部分,它有自己的(可能是单一的)责任。
-
@HenkHolterman:这正是我的想法,它不能,至少不应该(如果你想遵循原则),有任何它的封闭类型之外的责任。我认为有人会决定将它放在那里并首先将其设为私有。