2009-05-14 12 views

答えて

0

エンティティの定義に依存します。たとえば、すべてのサービス層で入力を検証できますが、この検証は別のクラスによって処理される可能性があります。

2

私は通常これを、エン "エンティティ"とエンティティの検証が別々の懸念事項であることを意味すると解釈します。私は通常、エンティティ全体を検証できる単一のクラスを使用しますが、そのクラスが他のクラスを使用させないようにして実装を制限する理由はありません。しかし、エンティティが複数の属性を持つため、エンティティの検証を複数のクラスに分割することはありません。バリデータの責任を「エンティティXの検証」と定義します。時には単一の責任は、巧みな方法で責任を定義することにかかっています。それは実際にはです。あなたはのルールを作成しています。

プロセスの異なるフェーズにある可能性のある複数の有効な状態を持つエンティティを見つけることができます。オーダーは別々のフェーズのために別々のバリデータを持っているかもしれませんが、私はそれが各バリデータに対して異なる責任であると考えています。