inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

CellSnapshotStatus 새 타입 추가로 인한 CellSignProvider 대응이 필요하다는 걸 컴파일 타임에 알 수 있을까요?

136

hello

작성한 질문수 3

0

안녕하세요! 강의 잘 듣고 있습니다!
그리고 '다형성 활용하기' 챕터에서 enum의 interface 구현에 대해 새롭게 알게 되어 좋았습니다!

그런데, 궁금한 점이 생겨 이렇게 문의하게 되었습니다.

바로 CellSnapshotStatus enumCellSignProvidable 인터페이스를 구현한 CellSignProvider enum 사이의 관계입니다.

 

CellSnapshotStatus에 새로운 타입(e.g. STAR)을 추가하게 되었을 때, 개발자가 CellSignProvider에 대해서도 알고 있어야 CellSignProvider에도 새로운 타입(STAR)에 대한 대응을 할 수 있을 것 같은데요

CellSnapshotStatus에 새로운 타입이 추가되면 CellSignProvider에도 이에 대한 대응이 필요하다는 것을 컴파일 타임에 알 수 있는 방법이 있을까요?


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

답변 1

1

박우빈

안녕하세요, hoonti06 님!

좋은 질문이네요!

이런 경우 컴파일 타임에 알 수 있게 하기란 조금 어려운 일일 것 같은데요. (자바가 아니라 코틀린이었으면, when 키워드를 사용해서 컴파일이 깨지도록 구성할 수 있긴 합니다.)
그래서 저는 모든 Enum을 대상으로 테스트 코드를 작성하고, 새로운 Enum이 추가되었을 때 테스트 코드가 깨지도록 (신규 Enum에 대한 대응이 없으므로) 구성하는 편입니다.
컴파일 타임에는 알 수 없어도, 테스트 시점에 알 수 있도록 하는 것이죠.

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

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

0

90

1

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

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

185

2

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

0

417

3

isLandMineCell() 메서드 질문

0

209

1

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

0

153

2

ConsoleInputHandler에서 왜 final붙여야 하는지

0

194

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