【发布时间】:2011-02-19 05:50:33
【问题描述】:
我有一个有很多方法的类:
public class MyClass {
public bool checkConditions() {
return checkCondition1() &&
checkCondition2() &&
checkCondition3();
}
...conditions methods
public void DoProcess() {
FirstPartOfProcess();
SecondPartOfProcess();
ThirdPartOfProcess();
}
...process methods
}
我确定了两个“重要”工作领域,并决定将这些方法提取到自己的类中:
public class MyClass {
private readonly MyClassConditions _conditions = new ...;
private readonly MyClassProcessExecution = new ...;
public bool checkConditions() {
return _conditions.checkConditions();
}
public void DoProcess() {
_process.DoProcess();
}
}
在 Java 中,我将 MyClassConditions 和 MyClassProcessExecution 定义为 package protected,但在 C# 中我不能这样做。
您将如何在 C# 中执行此操作?
将两个类都设置为 MyClass 的内部类?
我有 2 个选项:要么在 MyClass 中定义它们,将所有内容都放在同一个文件中,这看起来令人困惑和丑陋,要么我可以将 MyClass 定义为 partial class,为 MyClass 定义一个文件,其他为MyClassConditions,其他为MyClassProcessExecution。
将它们定义为内部?
我不太喜欢内部修饰符,因为我发现这些类根本没有为我的程序/程序集的其余部分增加任何价值,如果可能的话,我想隐藏它们。它们在程序的任何其他部分都不会有用/可重用。
保持公开?
我不明白为什么,但我在这里选择了这个选项。
还有其他的吗?
给它命名!
谢谢
【问题讨论】:
标签: c# .net private nested-class internal