Java-Zirkelverweise

In dem Projekt, an dem ich arbeite, schrieben die Leute eine Service-Klasse, um auf DAO zuzugreifen. Fast jedes Geschäftsobjekt verfügt über einen eigenen Service, der sein eigenes DAO verwendet. Bei einigen Diensten verwenden wir Verweise auf andere Dienste. Im Moment instanziieren die Leute die benötigten Dienste innerhalb des Konstruktors.

Aber jetzt habe ich Probleme, da Service A Service B und Service B Service A benötigt, sodass ein Aufruf an einen der beiden Konstruktoren zu einem Stapelüberlauf führt ...

Beispiel (Pseudocode):

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

Wie würden Sie das lösen? Singleton-Muster verwenden?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage