Let's understand how solves circular dependency by providing a dependency from the constructor to the setter method. There is a special case where due to circular dependency, you can't even create the object of the domain model. For example, say you are developing an application for a tyre manufacturer; who uses these tyres for cars. Based on the car's max speed, you need to set the min rim size of the tyre. For this, you have created the Car and Tyre classes, as in the following snippet:
public class Car { private Tyre tyre; private int maxSpeed; public Car(Tyre tyre) { this.tyre = tyre; setMaxSpeed(150); } public int getMaxSpeed() { return maxSpeed; } public void setMaxSpeed(int ...