setter 베스트 프랙티스
setter 베스트 프랙티스 4가지는?
- 멤버 변수는 private — 강력한 캡슐화(정보 숨기기)
- 새로 생성된 개체는 항상 유효하도록 — 생성자로 강제
- getter는 자유롭게 추가 — 단, 참조형 getter는 참조 노출·aliasing 문제 주의
- setter는 고민 후 추가 — 꼭 필요할 때만 (남발 금지)
이상적인 개체 상태 변화 방법은?
개체의 상태 수정은 개체가 스스로 수행하는 것이 이상적
- 외부에서 setter로 직접 바꾸기보다, 동작 메서드 안에서 개체가 자신의 상태를 갱신
- 예:
setScore가 호출될 때 파생 값인mean(평균)도 함께 갱신 → 개체가 자신의 상태를 책임짐