オブジェクト(IsNew、IsDirty)とINotifyPropertyChangesインターフェイスの変更を追跡するためのインターフェイスの実装など、いくつかの共通の動作を行うために、EntityBaseのような基本ビジネスクラスを作成したいと考えています。基本的なビジネスクラス:それは悪いですか?
しかし、多くの人は、基本的なビジネスクラスを持ち、それからすべてのビジネスオブジェクトを派生させるのは悪い考えだと言います。通常、彼らはエンティティクラスにプレゼンテーションコードを持つことは悪いと言います。しかし、私は単なる理論だと思う。実際に悪いのは何ですか?彼らは言う:自分でそれを試してみてください。通常、これ以上の議論はありません。
あなたはどう思いますか?それは良いか悪いですか?悪い場合は、なぜですか?理論的ではなく実践的な人になろう。
ここで練習に行きましょう。 ビジネスクラスにIsDirtyプロパティを追加すると何が悪いですか? – nightcoder
必ずしも悪いことはありませんが、これらの変更を追跡したいので、私はあなたも反応したいと思います。解決策は、他のタイプが変更を監視して対応できるようにイベントメカニズムを追加することです。そうすれば、異なるクラスで異なる反応を実装することができます。 –
外部クラスはビジネスクラスではなく変更に反応します。たとえば、IsDirty = trueの場合、EntityService.Save(entity)メソッドはスキップするのではなく保存します。このスキームでは何が悪いですか? – nightcoder