Круговые ссылки на Java

В проекте, над которым я работаю, люди написали класс служб для доступа к DAO. Почти каждый бизнес-объект имеет свой собственный сервис, который использует его собственный DAO. На некоторых сервисах мы используем ссылки на другие сервисы. В настоящее время люди создают необходимые службы внутри конструктора.

Но теперь у меня возникли проблемы, потому что сервис A нуждается в сервисе B, а сервис B - в сервисе A, поэтому вызов любого конструктора приводит к переполнению стека

Пример (псевдокод):

<code>//Constructor of OrderService
public OrderService() {
     orderDAO = DAOFactory.getDAOFactory().getOrderDAO();
     itemService = new ItemService();
}

//Constructor of ItemService
public ItemService() {
     itemDAO = DAOFactory.getDAOFactory().getItemDAO();
     orderService = new OrderService();
}
</code>

Как бы вы решили это? используя шаблон синглтона?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос