個人的には、あなたの検証チェックをモデルに移したいと思います。
など。
public interface IClass{
bool ShouldValidate();
}
その後、各クラスに:あなたの検証で次に
public class Class200
{
public bool ShouldValidate() => false; // because whatever
}
:
public void Validate(IClass class)
{
if(class.ShouldValidate())
{
// do whatever
}
}
このロジックはIClass
インスタンスに属し方法、および拡張して喜んで誰もがこれは正確に知っています例外の実装方法
また、クラス200-300の場合、DRYパターンを持つように常にfalse
を返す共通基本クラスから継承できます。
更新もう1つの選択肢は、クラス内にvalidateを直接入れることです。次のようにします。
public interface IClass{
void Validate();
}
次に、メソッドを空のままにして、クラス200〜300にします。
public class Class200
{
public bool Validate()
{
}
}
とあなたは `検証を()`を呼び出すと `検証は、()`クラス自体に移動することができるかどうかを決定したどのようなコードを示すために必要
public class Class1
{
public bool Validate()
{
// do awesome things here
}
}
を必要な場所に実装します。 – zaitsman