previous questionDr. Herbieからのコメントの1つは、私の方法が2つの責任を果たしているということでした。データを変更してデータを保存することでした。このコードの懸念事項を分ける最も良い方法は何ですか?
私が把握しようとしているのは、私の状況でこれらの懸念を分ける最善の方法です。
Policy policy = new Policy();
policy.Status = Active;
policyManager.Inactivate(policy);
//method in PolicyManager which has data access and update responsibility
public void Inactivate(Policy policy)
{
policy.Status = Inactive;
Update(policy);
}
の場合:次のようにNHibernateのを介して検索されたポリシーオブジェクトを持つことの私の例で上のキャリング
....私は現在、非アクティブにポリシーを設定しています方法です私はデータアクセスとデータ更新の責任を分離することが最善の方法であろうか?
は、それが良い(DAOへのゲートウェイとして機能)のPolicyManagerポリシーオブジェクトの状態を管理することです:
Policy policy = new Policy();
policy.Status = Active;
policyManager.Inactivate(policy);
policyManager.Update(policy);
//method in PolicyManager
public void Inactivate(Policy policy)
{
policy.Status = Inactive;
}
またはポリシーオブジェクトを使用し、それは自身の状態だ維持し、持っているがデータベースに情報を保存するマネージャークラス:
私はどうなるのかPolicy policy = new Policy();
policy.Status = Active;
policy.Inactivate();
policyManager.Update(policy);
//method in Policy
public void Inactivate()
{
this.Status = Inactive;
}