이것은 디자인 문제입니다.
저는 콘솔 메모리 게임을 과제로 만들고 있습니다. 우리는 UI를 비즈니스 로직 클래스와 분리해야한다고 들었습니다. 그래서 Windows GUI로 게임을 구현해야 할 때 가능한 최대 값을 재사용 할 수 있습니다.
내 디자인에서 ConsoleUI, GameManager, MemoryGameBoard 클래스를 만들었습니다.
내 질문은 MemoryGameBoard (높이, 너비)의 유효성 검사와 관련이 있습니다. MemoryGameBoard이기 때문에 요소의 수가 짝수인지 (쌍을 다루기 때문에) 합법성을 확인하고 GameManager가 부과하는 규칙 (최대 행과 열)을 확인해야한다고 결정했습니다. 크기는 4/5/6 만 가능).
ConsoleUI는 사용자에게이 높이와 너비를 요청합니다. GameManager 또는 MemoryGameBoard에 따라 유효한 데이터가 제공 될 때까지 계속 다시 요청해야합니다.
높이 / 너비의 유효성을 테스트하는 방법은 어디에 있어야합니까?
감사.
나는 일반적으로 생성자에서 유효성 검사를 피하려고합니다. GameBoardBuilder
생성자 GameBoardBuilder(int width, int height)
와 메서드가 있는 클래스를 사용 IsValid()
하고 MakeGameBoard()
. 따라서 다음과 같이 작성합니다.
while (true) {
... get input ...
var builder = new GameBoardBuilder(width, height);
if (builder.IsValid()) break;
... report error ...
}
var gameBoard = builder.MakeGameBoard();
또는 GameManager
UI에서 사용 :
while (true) {
.... get input ...
gameManager.SetBoardSize(width, height);
if (gameManager.IsBoardValid()) break;
... report error ...
}
gameManager.StartGame();
GameManager
방법이 있는 곳 :
public void SetBoardSize(int width, int height) {
builder = new GameBoardBuilder(width, height);
}
public bool IsBoardValid() { return builder != null && builder.IsValid(); }
public void StartGame() {
var gameBoard = builder.MakeGameBoard();
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다