Referencias circulares de Java

En el proyecto en el que estoy trabajando, la gente escribió servicios de clase para acceder a DAO. Casi todos los objetos comerciales tienen su propio servicio que utiliza su propio DAO. En algunos servicios, estamos utilizando referencias a otros servicios. En este momento, las personas están creando servicios necesarios dentro del constructor.

Pero ahora tengo problemas porque el servicio A necesita el servicio B y el servicio B necesita el servicio A, por lo que una llamada a cualquiera de los constructores produce un desbordamiento de pila ...

Ejemplo (pseudo-código):

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

Como resolverias esto ? usando un patrón de singleton?

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta