0

オブジェクトの構築に使用するデータ行の主キーを渡すことにより、データベース テーブルのデータを使用してオブジェクトを構築しています。

このオブジェクトのメンバー変数の作成は、コンストラクターまたはコンストラクターによって呼び出される別のメソッドで行う必要がありますか、それともまったく別の場所で行う必要がありますか?

Rails ActiveRecord やその他の ORM でこれを行うにはどうすればよいですか。フレームワークによって各フィールドに対して呼び出されるセッターのセットがあると思われますが、複雑なフレームワークでこれらすべてを実行する必要はありません。独自のシンプルなメカニズム?

注:自分の状態を管理できない大量の貧血データモデルを作成したくないことに注意してください。

4

2 に答える 2

2

多くの言語とフレームワークで守られている安全規則は、コンストラクター内で危険なこと (例外をスローする可能性のある操作) を決して実行しないことです。これらの例外をスローしたり、適切に応答したりすることができないことが多いためです。クラス外でデータベース操作を実行してから、オブジェクトに必要なフィールドを取り込むカスタム コンストラクターを使用することをお勧めします。そのコンストラクター内で、(単純な割り当てを介して) 内部メンバーを設定します。

于 2011-03-24T19:49:26.407 に答える
1

私は持続性の管理を貧血のカテゴリーには入れません。それは別の永続層に属します。私はそれをコンストラクターに入れません。

オブジェクトが状態のみを気にし、それを操作するためのビジネス スマートを組み込まない場合、貧血が生じると思います。もっと考えてみてください。永続性について心配する必要はありません。

于 2011-03-24T19:45:16.020 に答える