해결된 질문
작성
·
51
0
나도 코딩님. FactoryCam이란 클래스에서, 생성자로 Detectable detector;와 Reportable reportor;를 초기화 해주는 대신 Setter를 사용하는 이유가 있나요?
답변 2
1
안녕하세요?
생성자에서 모두 처리를 하는 경우 객체가 완전히 초기화된 상태로 만들어집니다. 하지만 Setter 를 제공하지 않으면 이를 변경할 수 없게 되지요. 생성자가 아닌 Setter 를 사용하면 객체를 생성 후에도 필요 시 변경할 수 있기 때문에, 객체를 다양한 상황에서 재사용할 수 있습니다. 예를 들어, 초기화 후 다른 detector나 reporter로 설정해야 하는 상황에서 유용합니다. ^^
감사합니다.
네 ^^ 그렇습니다.
둘을 혼합하는 형태도 가능합니다. 생성자에서는 기본적으로 객체를 완성시키기 위해 기본 기능을 하는 detector / reporter 를 설정해두고, 이후 상황 또는 필요에 따라 setter 를 이용하여 advanced 버전으로 변경하셔도 좋습니다. 안정성과 유연성을 모두 고려한 방식이 되겠네요!
0
오호. 그렇군요. 빠른 답변 정말 감사합니다. 여기서 잠깐 막혀서, 영상을 여러번 돌려 봤어요 ㅎㅎ
한가지 질문이 더 있어요.
만약, 생성자를 사용해서 원하는 형태로 초기화 해주고 (nomalDetect, normalReport), setter 를 통해서 나중에 필요할때 advancedDetect, videoreport등과 같은 method들을 설정 할수 있게 해줘도 되나요?