比方说,我有一个客户谁拥有订单和愿望清单。在我的模型中,我有一个ClientRepo
,OrderRepo
和WishListRepo
。在控制器中,我应该在哪里实例化这些存储库?让他们成为课堂级别的实例是个好主意吗?我应该在ColdFusion Model Glue控制器中实例化我的模型?
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
等功能需要访问同一个存储库。
另外,控制器的寿命是多少?它是每次请求一次,每次会话一次还是每次应用一次?
谢谢!很有帮助! –