강의

멘토링

커뮤니티

Inflearn Community Q&A

ㅁㅇㄹ's profile image
ㅁㅇㄹ

asked

Readable Code: Mindset for Writing Readable Code

Refactoring (2) - Object's Responsibility and Cohesion

일급컬렉션 메서드 반환타입 List로의 반환 vs 일급컬렉션으로 반환

Written on

·

241

0

안녕하세요

강의보다가 일급컬렉션에 정의한 메서드들의 반환타입이 일급컬렉션 타입으로 반환하기도 하고 LIst<>로도 반환하기도 하셨던거 같았는데요 어느 기준을 가지고 어떤 타입으로 반환하는지 궁금합니다

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

Answer 2

1

wbluke님의 프로필 이미지
wbluke
Instructor

안녕하세요, 후아휴 님!

명확한 기준이 있는 것은 아니지만, 저는 이 메서드를 사용하는 사용자(클라이언트)가 가장 이해하기 쉬운, 그리고 사용하기 쉬운 형태가 무엇일지를 기준으로 고민합니다.

제가 '메서드 선언부' 강의에서, 메서드가 가지고 있는 반환 타입, 메서드명, 파라미터 이 3가지가 연결되어 드러내는 의미가 가장 중요하다고 말씀드렸는데요.
A라는 메서드에서는 사용자가 반환타입으로 일급컬렉션을 받아서 그 이후의 로직을 처리하면 좋겠다, 라고 생각할 수도 있고,
B라는 메서드에서는 사용자가 List, Set, Map 등의 컬렉션을 바로 받아서 사용하는 것이 편하겠다, 라고 생각할 수도 있습니다.

예를 들어, 사용자가 일급컬렉션 내부의 객체를 전혀 몰랐으면 좋겠다, 라고 한다면 메서드의 모든 반환 타입은 반드시 모두 포장된 형태의 일급컬렉션이 되어야 할 것이고요.
사용자가 어떤 필터링된 리스트를 바로 사용하는 것이 좋겠다, 라고 한다면 일급컬렉션 내부에서 가지고 있는 데이터를 어떤 조건에 따라 필터링 가공을 한 뒤에 List 타입을 바로 반환해줄 수도 있을거에요.

이러한 관점으로 때에 따라 적절한 결정을 내려보시면 좋을 것 같습니다.

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

0

저도 궁금했는데 잘봤습니다!

ㅁㅇㄹ's profile image
ㅁㅇㄹ

asked

Ask a question