inflearn logo
강의

Course

Instructor

Learning Refactoring by Coding

Refactoring 9. Passing the whole object

객체의 필드 몇개만 전달할 경우, 통째로 넘기기 vs 여러개로 넘기기

510

void

8 asked

0

class Member {

String id;

String name;

String addr;

int age;

}

 

위와 같은 클래스가 있고, 그중 절반정도의 필드를 매개변수로 넘겨야 할 경우,

아래 2가지중 하나를 선택하는 고민을 매번 하게 됩니다.

1) void check(id, name); 으로 할것인가

2) void check(Member member); 로 할것인가

 

클래스의 모든 필드를 참조한다면 , 당연히 객체를 통째로 넘기면 되나, 절반 정도만 사용한다면 고민이 됩니다. 범용적일 필요가 없는 메서드라고 하더라도, 불필요한 값들을 객체를 통째로 넘기므로, 이 객체필드중 어떤걸 사용하지? 하면서 '구현'을 찾아봐야 하는 단점이 있어 보입니다.

사용하는것만 무조건 넘겨야 한다면, 매개변수 갯수가 늘어나거나, 전용 dto를 만들어야 하니 불편하고,

통째로 넘기는걸 반복하다 보면 의미없는 필드가 더 많은 객체를 매개변수로 넘기는 것과 다름없는 문제가 있어보입니다.

절충점을 어떻게 찾아야 할까요?

 

intellij java refactoring

Answer 0

리팩토링 10. 함수를 명령으로 바꾸기 강의 부분에서 질문있습니다.

0

94

1

함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.

0

202

1

레코드에 대해 질문 있습니다.

0

219

2

.github 토큰 등록하는 방법에 대한 질문

0

220

2

깃허브

0

202

1

홈 디렉토리 .github 파일 생성

0

456

1

리팩토링 22. 여러 함수를 변환 함수로 묶기 강의 내용과 소스 코드가 다른 부분 문의

0

554

1

필드를 감추는 것이 중요한 이유?

0

568

1

오타제보. CVS -> CSV

0

375

0

[오탈자제보] 아주 작은 오타

2

401

0

basePrice

0

294

1

4:04 단축키 궁금합니다.

0

435

1

rename 메뉴에 대한 사소한 질문

0

356

1

테스트 코드 예제

0

308

1

Exception 부분

0

338

1

리팩토링 강의 [ 일부 소스 파일 누락 ]

0

331

1

stream으로 변경 시 성능 문제

0

437

2

로컬 변수에 final

0

458

1

Area 밑줄 나온부분

0

404

1

클래스의 상속 vs 네임스페이스 vs nested 클래스

0

322

1

이런 경우도 따로 함수로 빼는게 좋을지 궁금합니다.

0

279

1

질문입니다

2

265

1

파라미터와 이들을 가진 클래스

0

237

1

해당 강의를 실행시 아래와 같은 에러가 발생합니다..!

0

598

2