たくさんのメソッドを持つクラスがありました:
public class MyClass {
public bool checkConditions() {
return checkCondition1() &&
checkCondition2() &&
checkCondition3();
}
...conditions methods
public void DoProcess() {
FirstPartOfProcess();
SecondPartOfProcess();
ThirdPartOfProcess();
}
...process methods
}
私は2つの「重要な」作業領域を特定し、それらのメソッドを独自のクラスに抽出することにしました。
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
それらを内部として定義しますか?
これらのクラスがプログラム/アセンブリの残りの部分にまったく値を追加しないので、内部修飾子の多くはあまり好きではありません。可能であれば、それらを非表示にします。プログラムの他の部分で役立つ/再利用できるわけではありません。
それらを公開しておきますか?
理由はわかりませんが、ここでこのオプションを許可しました。
他の?
それに名前を付けます!
ありがとう