인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

정예은님의 프로필 이미지

작성한 질문수

Readable Code: 읽기 좋은 코드를 작성하는 사고법

SRP: Single Responsibility Principle

Cell[][]BOARD 매개변수받기

작성

·

69

0

  • 강의 질문 있습니다!

    [섹션4.객체지향패러다임] - SRP: Single Responsibility Principle 강의 - 14분38초경

    코드28번줄 cosoleOutputHandler.showBoard(BOARD);

    이 부분에서 해당 Cell[][]BOARD를 매개변수로 받고

    showBoard(Cell[][] board) 사용되는 부분이 이해가 잘 안갑니다..!

    흐름이 어떤식으로 진행되며, 어떤 과정으로 코드가 진행되는지 궁금합니다!

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 정예은 님!

정확히 어느 부분이 이해가 가지 않으시는지 제가 글로만 보아서는 잘 모르겠지만, 다음과 같은 흐름입니다.

  • Minesweeper에서 선언하고 생성한 Cell[][] 타입의 BOARD 인스턴스를 consoleOutputHandler.showBoard()에 파라미터로 넘겨줍니다.

  • showBoard()에서는 받은 Cell[][] 타입의 인스턴스를 가지고 게임판을 콘솔에 그리는 역할을 수행합니다. Cell 이중배열을 row, column 개념에 맞게 순차적으로 순회하면서, board가 가지고 있는 Cell을 참조하여 cell.getSign()을 통해 Cell이 가진 문양을 콘솔에 표시합니다.

게임판을 상세하게 그리는 과정이 직관적으로 이해가 잘 가지 않으신다면, IDE의 디버그 모드를 활용하여 각 라인마다 어떤 과정이 수행되고, 콘솔에 어떻게 표시하는지를 하나씩 살펴보셔도 좋을 것 같네요.

도움이 되셨기를 바랍니다.
감사합니다 🙂

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 정예빵님!

Cell[][] BOARD와 관련하여 showBoard(Cell[][] board) 메서드의 사용에 대해 설명드리겠습니다.

코드를 이해하는 흐름:

  1. BOARD 배열: Cell[][] 타입의 BOARD는 일반적으로 게임 보드를 나타내는 2차원 배열입니다. 배열을 통해 각 Cell은 특정 상태를 가질 수 있으며 보드의 전체 상태를 표현합니다.

  2. 매개변수 showBoard(Cell[][] board): 이 메서드는 보드 상태를 출력할 때 사용되는 매개변수로, BOARD 혹은 그 복사본을 전달받아 콘솔에 출력합니다.

  3. 메서드의 역할: showBoard 메서드는 주어진 2차원 배열의 상태를 콘솔에 나타내기 위해 설계되었습니다. 내부적으로는 루프나 다른 로직을 사용해 각 셀의 상태를 가져와 출력하게 됩니다.

  4. 핵심 역할: 이 메서드의 핵심은 SRP, 즉 Single Responsibility Principle을 준수하는 것으로, 메서드는 단일 기능(여기서는 보드 출력)을 맡고 있습니다. 따라서 보드의 상태를 화면에 출력할 뿐 그 외의 로직은 처리하지 않습니다.

관련해서 더 많은 인사이트를 얻고 싶다면 다음의 유사한 질문과 토론들을 확인해보세요:

이해에 도움이 되었기를 바랍니다. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.