そもそもこれは設計が悪いのかもしれませんが、私は抽象基底クラスを持っていて、それにはメソッドがありますvalidate
public abstract class abClass{
string str1;
string str2;
public virtual bool validate(){...};
}
すべての派生クラスには検証が必要なプロパティがあることはわかっていますが、抽象メソッドごとstr1
に検証をコピーして貼り付ける必要はありません。str2
将来の開発者 (私自身を含む) が、validate メソッドを含めて入力することを忘れないようにしたいと思います。私が見たところ、抽象メソッドに定義を与えたり、仮想メソッドを強制的にオーバーライドしたりする方法はありません。
これに関して私がこれまでに聞いたのは、「開発者がやりたいことを選択できるようにするべきだ」ということだけです。それは私にとって十分ではありません。間違いを犯さないようにするための抑制と均衡に反します。彼らが積極的に実装コードを持たないことを選択してもかまいませんが、忘れると、後で派生フィールドが検証されないときに頭痛の種になります。
この問題に対する提案はありますか?