【发布时间】:2012-05-14 09:22:31
【问题描述】:
在我正在进行的项目中,人们编写了服务类来访问 DAO。 几乎每个业务对象都有自己的服务,这些服务使用自己的 DAO。 在某些服务上,我们使用对其他服务的引用。 目前,人们正在构造函数中实例化所需的服务。
但是现在,我遇到了麻烦,因为服务 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();
}
你会如何解决这个问题?使用单例模式?
谢谢
【问题讨论】:
标签: java constructor stack-overflow circular-reference