5

DDDのテナントの1つは、オブジェクトが無効な状態にならないようにすることです。私にとってこれは、99%の確率で無効な状態のオブジェクトになるため、パブリックパラメーターのないコンストラクターがあってはならないことを意味します。

これは前進するための良い方法ですか?クラスをすぐに新しくしたいだけの場合、それは巨大なPITAになります。

4

3 に答える 3

2

Kilhoffer が述べたように、クラスで何をしようとしているかによって異なります。どのような状況で、実際にプロパティを初期化せずにクラスを新しくしたいですか? データを必要としない、呼び出したいインスタンス メソッドがある場合は、それらのメソッドを静的としてマークするか、メソッドを別のクラスに移動することを検討してください。クラスにもう 1 つの有効な状態、つまり完全に空がある可能性もあります。

個人的には、すべてが適度にあると信じています。PITA 係数が高く、問題が発生しないことが合理的に確信できる場合は、パラメーターのないコンストラクターで問題ないようです。ある時点で、それは意見の問題になると思います。

于 2008-11-21T19:29:27.933 に答える
2

良い質問。パラメーターのないコンストラクターは悪魔だと言う DDD ナチスの友人がいます。ある程度は賛成ですが、授業の目的にもよると思います。

于 2008-11-21T16:30:58.980 に答える
0

それはすべて、コンストラクターを呼び出す人に依存します。ファクトリのみが行う場合、ファクトリ メソッドは「ドメイン側」のコンストラクタになり、実際のコンストラクタは実装の詳細であるため、実際には問題はありません。

于 2008-12-18T16:39:17.330 に答える