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

dizzydimm님의 프로필 이미지
dizzydimm

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

인터페이스 (후반전)

생성자 대신 Setter 사용 이유

해결된 질문

작성

·

48

0

 나도 코딩님. FactoryCam이란 클래스에서, 생성자로 Detectable detector;와 Reportable reportor;를 초기화 해주는 대신 Setter를 사용하는 이유가 있나요?

답변 2

1

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

생성자에서 모두 처리를 하는 경우 객체가 완전히 초기화된 상태로 만들어집니다. 하지만 Setter 를 제공하지 않으면 이를 변경할 수 없게 되지요. 생성자가 아닌 Setter 를 사용하면 객체를 생성 후에도 필요 시 변경할 수 있기 때문에, 객체를 다양한 상황에서 재사용할 수 있습니다. 예를 들어, 초기화 후 다른 detector나 reporter로 설정해야 하는 상황에서 유용합니다. ^^

감사합니다.

dizzydimm님의 프로필 이미지
dizzydimm
질문자

오호. 그렇군요. 빠른 답변 정말 감사합니다. 여기서 잠깐 막혀서, 영상을 여러번 돌려 봤어요 ㅎㅎ

한가지 질문이 더 있어요.

만약, 생성자를 사용해서 원하는 형태로 초기화 해주고 (nomalDetect, normalReport), setter 를 통해서 나중에 필요할때 advancedDetect, videoreport등과 같은 method들을 설정 할수 있게 해줘도 되나요?

나도코딩님의 프로필 이미지
나도코딩
지식공유자

네 ^^ 그렇습니다.

둘을 혼합하는 형태도 가능합니다. 생성자에서는 기본적으로 객체를 완성시키기 위해 기본 기능을 하는 detector / reporter 를 설정해두고, 이후 상황 또는 필요에 따라 setter 를 이용하여 advanced 버전으로 변경하셔도 좋습니다. 안정성과 유연성을 모두 고려한 방식이 되겠네요!

0

dizzydimm님의 프로필 이미지
dizzydimm
질문자

오호 알겠습니다. 답변 정말 감사합니다.

dizzydimm님의 프로필 이미지
dizzydimm

작성한 질문수

질문하기