TDA: Tell, Don't Ask
링크 복사
링크가 복사되었습니다
묻지 말고, 시켜라.
객체의 상태를 물어보고 그 결과로 판단하지 말고, 객체에게 직접 작업을 시켜라.
❌ Ask
// 객체의 상태를 물어보고 외부에서 판단
if (user.getAge() >= 19) {
user.setAdult(true);
}
✅ Tell
// 객체에게 작업을 위임
user.checkAndUpdateAdultStatus();
그렇게 해서
- 캡슐화: 객체의 내부 구조를 숨긴다
- 응집도: 관련 로직이 한 곳에 모인다
- 중복 제거: 같은 판단 로직이 여기저기 흩어지지 않는다
데이터를 꺼내서 처리하지 말고, 데이터를 가진 객체에게 처리를 맡겨라.