在項目IM工作的人寫的服務類訪問DAO。 幾乎每個業務對象都有自己的服務,它使用自己的DAO。 在某些服務上,我們使用對其他服務的引用。 目前,人們在構造函數中實例化所需的服務。Java的循環引用
但現在,我有麻煩,因爲服務A需要服務B和服務B需要服務A所以在堆棧溢出或者構造函數的調用導致...
例(僞代碼):
//Constructor of OrderService
public OrderService() {
orderDAO = DAOFactory.getDAOFactory().getOrderDAO();
itemService = new ItemService();
}
//Constructor of ItemService
public ItemService() {
itemDAO = DAOFactory.getDAOFactory().getItemDAO();
orderService = new OrderService();
}
你會如何解決這個問題?使用單身模式?
謝謝
不幸的是我沒有辦法在這個項目中使用Sprint框架(不是我的調用,愚蠢的管理規則) – Estragon
然後手動執行它,即:創建OrderService,ItemService。然後有OrderService.setItemService(itemService);和ItemService.setOrderService(orderService); – Jonathan