I am developing a chess program, currently refactoring some classes, and was wondering if the followings are creating a circular dependency.
Class A, depends on class B and C, and class C depends on class B.
A:
public class MoveValidatorHandler {
private PositionHandler positionHandler;
private CheckMovementHandler checkMovementHandler;
public MoveValidatorHandler(PositionHandler positionHandler,CheckMovementHandler checkMovementHandler){
this.positionHandler = positionHandler;
this.checkMovementHandler = checkMovementHandler;
}
B:
public class PositionHandler {
// this one only contains methods
}
C:
public class CheckMovementHandler {
private PositionHandler positionHandler;
public CheckMovementHandler(PositionHandler positionHandler){
this.positionHandler = positionHandler;
}
For cases like these, it makes it a lot easier when you draw an image of a directed graph, and have a directed line from A to B if A depends on B :).
If you can follow the arrows, and find a loop, then there is a circular dependency.
Class dependency graph