クライアントアプリケーションが新しいオブジェクトを要求すると、Factoryクラスにその新しいオブジェクトを作成させます。
public class CarFactory{
public Car CreateCar()
{
//create a new car object and send back
}
}
carオブジェクトのプロパティは、データベースに格納されているストアドプロシージャを呼び出すことによって入力されます。データベースには、毎日変更される可能性のあるデフォルト値が格納されています。デフォルトのテーブルは、外部システムによって作成されます。
public class Car {
public List<string> DefaultTyres {get;set;}
public List<string> DefaultPetrolSpec {get;set;}
}
したがって、ファクトリ(サービスレイヤーが呼び出す)がCarオブジェクトを作成すると、ファクトリクラスはリポジトリクラスを呼び出し、リポジトリクラスはDBを呼び出してCarのプロパティを設定します...しかし、これらのレイヤーの関係は少し奇妙に聞こえます...
public Car CreateCar()
{
//create a new car object and send back
//Call CarRepository.GetDefaultTyres(), CarRepository.GetDefaultPetrolSpec() etc.
}
私のファクトリー実装は多くのことをしていると思うからです。リポジトリレイヤーを呼び出すべきではないかもしれません(その後、DBを呼び出して車のオブジェクトのデータを取得します)。
皆さんはどう思いますか?FactoryクラスはDBと通信する必要がありますか?彼らがそうしても大丈夫ですか?そうでない場合、それは誰の責任である必要がありますか?