2009-05-05 6 views
0

私は、linq to SQLメソッドでインスタンス化されるオブジェクトを持っています。オブジェクトフィールドが割り当てられているとき、私は日付フィールドをチェックし、古い日付であれば、このオブジェクトの割り当てを続ける前に、別のテーブルからデータを取り出し、計算を実行します。
プロパティセッターでこのようなイベントをトリガーするのに問題はありますか?また、サービスによって日付を独自にチェックして、必要に応じて変更を加える必要がありますか?オブジェクトのセッターを使用してデータ更新をトリガする、ベストプラクティス

答えて

0

パブリックフィールドの代わりにセッターを使用することの半分は、特定のデータの設定に関連するイベントをトリガーできることです。

キーワード:関連付けられています。セッターがうまくいっているために他のものをやるための「便利な」時間としてセッターを使用しているのであれば、それは間違っています。この値を設定するには、他の作業が必要な場合は、必ず設定ツールを使用してください。

1

あなたのセッターの中からいくつかのロジックを実行することには何も問題はありませんが、セッター内にどれくらいのロジックを置くかには注意が必要です。セッターの基本的な問題の1つは、属性のように動作するが裏付けコードがあるため、潜在的にいくつかの重要なアクションがバックグラウンドで行われていることを忘れることです。

アクセサーを使用するアクセサを使用するアクセサを使用している場合、このような問題が発生する可能性があります。すぐに予期しないパフォーマンスの問題を引き起こす可能性があります。一般的に、セッター(またはgetter)のアクションを比較的少数のアクションに保つことは良い考えです。たとえば、検証は完全にうまく動作することができますが、通常は外部リソースに対する検証を行うことをお勧めします.2つの理由があります。まず、リソースの遅延が予想されるアクセス速度に問題を引き起こす可能性があります。アクセスがパフォーマンスを破壊する可能性があります。

一般的にルールは次のとおりです。それは簡単です。セッターで複雑なことを行うことは不合理ではありませんが、そうした場合、原因となるすべてのアクションの結果を理解することは本当に重要です。それが非常にうまくいくかを記録することは非常に重要です。 (または少女)がコードを使用するだけで、アクセサを素朴に使用しようとするだけでなく、予期せず大量のリソース競合の問題が発生する可能性があります。

関連する問題