inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Readable Code: Cách tư duy để viết code dễ đọc

Mức độ trừu tượng

[강의 질문] 메서드 선언부

90

JuNu

24 câu hỏi đã được viết

0

안녕하세요 우빈님 메서드 선언부 강의 내용 중 궁금한 부분이 있어서 질문 남깁니다.

 

기존 메서드(checkIfAllCellIsOpened)가

  1. 셀이 모두 열렸는지 체크

  2. 게임이 모두 끝났는지 체크

위의 두 내용을 나타내지 못하기 때문에
결국 게임이 끝났는지를 체크하는 메서드로 변경되었습니다. (checkIfGameOver)

여기서 궁금한점이 1. 의 일은 2. 에 대한 과정이라고 생각하는데 과정을 메서드 이름으로 드러내지 않아도 되는건지요?

메서드만 보았을 땐 셀이 모두 열렸는지를 체크하는 것을 알지 못하기 때문에 이것또한 이름으로 드러내야하는지가 궁금합니다. 🙇🏻‍♂️

객체지향 리팩터링 클린코드-기획전

Câu trả lời 1

1

wbluke

안녕하세요, JuNu 님!

좋은 질문이네요.

'추상과 구체', '추상화 레벨' 강의에서 살펴 보았듯이, 추상화 레벨이 높은 메서드명은 구현체의 모든 내용을 담을 필요가 없습니다. 추상화 단계가 올라가면서 자연스레 생략되는 구체의 정보가 생기기 마련입니다.
위의 예시에서는, '게임이 끝났는지 체크'하는 것은 메서드의 목적으로 추상화 레벨이 높고, '셀이 열렸는지 체크'하는 것은 게임이 끝났는지 체크하기 위한 구체적인 방법으로 추상화 레벨이 낮습니다. (즉, 구체에 가까운 정보입니다.)

만약 읽는 사람이 checkIfGameOver()라는 메서드를 읽고 '게임을 끝냈는지 어떻게 체크했지?'라는 궁금증이 든다면, 그 때 추상화 레벨이 낮은 메서드 구현부로 진입하여 내용을 읽고 '셀이 모두 열렸는지를 체크하는구나!' 라는 정보를 얻을 수 있습니다. 반대로 구체적인 내용에 관심이 없는 사람은 메서드명으로 충분한 정보를 얻고 넘어갈 수도 있을 거고요.

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

[강의 질문] 메서드와 추상화

0

61

2

DIP 개념에 대한 질문입니다.

0

64

1

만약 보드를 이용한 게임의 종류가 더 다양해진다면 어떻게 될 수 있을지에 대한 고민

0

86

2

DIP 설명 후반부에 IOC에 대한 질문 드립니다.

0

80

2

안녕하세요 ! 혹시 자바가 아닌 다른 객체지향 언어를 알고있어도 강의를 들어도 괜찮을까요 ?!

0

71

1

안녕하세요 메서드명 때문에 고민이 있어서 질문드립니다.

1

64

2

자바 record 사용에 대해서 질문 드립니다!

0

128

2

강의 내용 정리 및 자료 제작 툴 문의 드립니다.

0

136

2

사용할 변수 가깝게 선언하기 질문

0

93

1

오버 엔지니어링

0

150

2

학습용 java/spring 오픈소스 추천

1

368

2

중복된 메서드 줄이는 방법

0

184

2

MarketPlace에서 Sonarlint 검색이 안됩니다.

0

417

3

isLandMineCell() 메서드 질문

0

209

1

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

0

153

2

ConsoleInputHandler에서 왜 final붙여야 하는지

0

193

1

정적 생성자 메서드 of, from

0

265

2

Getter관해서

0

148

3

이름 바꾸기

0

129

2

stack 대신 queue 를 사용해 bfs 로 변경해도 되나요??

0

164

2

현업에서 ISP를 도입하려는데 인터페이스 설계에 있어서 의문이 있습니다.

0

208

2

null을 가질 수 있는 값을 인자로 넘겨야 하는 경우

0

253

3

리팩토링을 하고 난 뒤 다시보면 오히려 더 복잡해 보이는것 같은 느낌입니다..

0

255

2

조합 관계에 대해 질문있습니다.

0

166

2