title: Chess game design and Singleton pattern
body: <p>I am currently creating a chess game consisting of the following classes:</p>
  
  <ul>
  <li><strong>ChessPiece</strong> - For all the various chess pieces, composed with a MovementBehaviour instance variable</li>
  <li><strong>MovementBehaviour</strong> - Interface implemented by PawnMovementBehaviour, 
  KingMovementBehaviour etc classes to define
  how each piece type moves</li>
  <li><strong>ChessBoard</strong> - Consisting of a ChessPiece[][] 2D array with functionality like addPiece()/removePiece()/replacePiece() etc</li>
  <li><strong>Player</strong> - Small class helps associate which pieces belong to which human player</li>
  <li><strong>Game</strong> - The main class essentially which will begin by asking players for their names and desired piece colors and then running the
  game by instantiating a ChessBoard and letting players move turn by
  turn until checkmate is reached.</li>
  </ul>
  
  <p><strong>I was wondering if I should be using a Singleton pattern (With regards to the ChessBoard class) ?</strong> Currently I am not and I am passing the instance of the ChessBoard into the chess pieces movement functionality so that the piece can understand its surroundings. This is because of course moves are deemed legal depending on what spaces are occupied/empty on the board at any time. </p>