データアクセス層-保存を作成する責任があるべきクラスの設計
-
28-10-2019 - |
質問
私はADO.NET2.0とC#、Sql Server 2005を使用してデータアクセス層を設計しています。これらの呼び出しをどこに行うかについて、頭の中でよく争っています。保守可能な堅牢なコードを作成するには、以下のどの方法に従う必要がありますか。
方法1
ジェネラコディセタグプレ
方法2
ジェネラコディセタグプレ
そして私はコアデータアクセスを行うために以下のような別のクラスを使用します。以下のように
ジェネラコディセタグプレ
解決
方法2を使用します。データソースからの読み取り/書き込みはCompanyクラスの責任ではありません(単一責任の原則)。ただし、ICompanyRepository
インターフェイスを作成してから、インターフェイスのCompanyRepository
実装を作成することもできます。このようにして、会社情報を保存/取得する必要があるクラスにICompanyRepositoryを挿入できます。また、ユニットテストが簡単になり、将来的に別の実装を作成できるようになります(データベースからxmlファイルへの切り替えなど)。
他のヒント
私は2番目の選択肢を支持します、原因
- 最初に
data holder
を作成します - ジェネラコダイスタグコードを作成した後
したがって、この場合、データをそれらを操作する関数から分離し、
operational unit
を非常に簡単にし、コードの異なるドメイン間で責任を分散します。バグのローカリゼーションも簡単です。
所属していません StackOverflow