假设我有一个客户,他有一个订单清单和一个愿望清单。在我的模型中,我有一个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
需要访问相同的存储库。
另外,控制器的寿命是多少?是每个请求一次、每个会话一次还是每个应用程序一次?