私は、C#と.netを使ってリポジトリパターンを試しています。リポジトリパターンを使用してオブジェクトの新しいインスタンスを作成する正しい方法は何ですか?
私の質問についてはsomeRepositoryObject
の新しいインスタンスを作成しています。私がこれまで見てきたすべての例では、このようなものを使用します。
using(ISomeRepository someRepository = new SomeRepository().getRepository())
{
IsomeRepositoryObject repObj = new someRepositoryObject();
}
は、最初の場所でのインターフェイスを使用してのポイントを削除new someRepositoryObject
を呼び出しませんか?それが良いような何かをするだろう:
using(ISomeRepository someRepository = new SomeRepository().getRepository())
{
IsomeRepositoryObject repObj = someRepository.NewsomeRepositoryObject();
}
だから、タイプISomeRepositoryObject
であるだけという、リポジトリ自体は必要なオブジェクトの新しいインスタンスを返し、呼び出し元のコードがそれに渡されるクラスの知識を持ちません。
これは私にとって初めてのものなので、明白なものがありません。
ご協力いただければ幸いです。
。getRepository()'だけでなく '新しいSomeRepositoryの()'や 'RepositoryFactory.getSomeRepositoryのようなもの()'あるいは 'SomeRepository.getRepository()'? – hangy
それについて考えると、理由はありません!私はgetRepositoryを使って正しいリポジトリタイプを返すために使用されたweb.config appsettingを取得していました。このコードはSomeRepositoryのコンストラクタに追加できます。 –
実際には、コードを見て、私は.getSomeRepository()を使ってIsomeRepositoryオブジェクトを返していました。これは私がクリスマス休憩前に演奏していたものです。 –