我有一堂有很多方法的课:
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
and定义MyClassProcessExecution
为package protected
,但在 C# 中我不能这样做。
您将如何在 C# 中执行此操作?
将这两个类都设置为 MyClass 的内部类?
我有 2 个选项:我要么在内部定义它们MyClass
,将所有内容都放在同一个文件中,这看起来令人困惑和丑陋,要么我可以定义MyClass
为 a partial class
,一个文件用于MyClass
,另一个用于MyClassConditions
,另一个用于MyClassProcessExecution
。
将它们定义为内部?
我不太喜欢内部修饰符,因为我发现这些类根本没有为我的程序/程序集的其余部分增加任何价值,如果可能的话,我想隐藏它们。它们在程序的任何其他部分都不会有用/可重用。
让他们公开?
我不明白为什么,但我让这个选项在这里。
任何其他?
命名吧!
谢谢