Jak uniknąć okrągłego odniesienia jednostki?

Wyobraź sobie następujące dwie klasy gry w szachy:

TChessBoard = class
private
  FBoard : array [1..8, 1..8] of TChessPiece;
...
end;

TChessPiece = class abstract
public
   procedure GetMoveTargets (BoardPos : TPoint; Board : TChessBoard; MoveTargetList : TList <TPoint>);
...
end;

Chcę, aby dwie klasy zostały zdefiniowane w dwóch oddzielnych jednostkachChessBoard.pas iChessPiece.pas.

Jak mogę uniknąć okrągłego odwołania do jednostki, w którym się tu znajduję (każda jednostka jest potrzebna w sekcji interfejsu innej jednostki)?

questionAnswers(9)

yourAnswerToTheQuestion