注文のリストとウィッシュリストを持っているクライアントがいるとしましょう。私のモデルでは、ClientRepo
、OrderRepo
、および がありWishListRepo
ます。コントローラでは、これらのリポジトリをどこでインスタンス化する必要がありますか? それらをクラスレベルのインスタンスにするのは良い考えですか?
component ClientController
{
ClientRepo = new ClientRepo();
OrderRepo = new OrderRepo();
WishListRepo = new WishListRepo();
public void function HomePage(any event)
{
var clientId = event.getValue("id");
var client = ClientRepo.getClientById(clientId);
var orders = OrderRepo.getOrdersForClientId(clientId);
// put the variables into the event object for the view to access
}
}
または、関数内でそれらをインスタンス化することをお勧めしますか?
public void function HomePage(any event)
{
var ClientRepo = new ClientRepo();
var orderRepo = new OrderRepo();
var wishListRepo = new WishListRepo();
// rest of the code is the same
}
ここでの前提は、他の関数がClientController
同じリポジトリにアクセスする必要があるということです。
また、コントローラーの寿命は?リクエストごと、セッションごと、またはアプリケーションごとに 1 回ですか?