Odniesienia okrągłe Java

W projekcie, nad którym pracuję, ludzie pisali klasy usług, aby uzyskać dostęp do DAO. Prawie każdy obiekt biznesowy ma własną usługę, która korzysta z własnego DAO. W niektórych usługach używamy odniesień do innych usług. W tej chwili ludzie tworzą instancje potrzebnych usług wewnątrz konstruktora.

Ale teraz mam problem, ponieważ usługa A potrzebuje usługi B, a usługa B potrzebuje usługi A, więc wywołanie któregokolwiek z konstruktorów powoduje przepełnienie stosu ...

Przykład (pseudokod):

<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>

Jak byś to rozwiązał? używając wzoru singleton?

Dzięki

questionAnswers(4)

yourAnswerToTheQuestion