Code ‐ 객체지향 패러다임 - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 객체 지향

  • 객체 : 데이터 + 코드

📚 객체 설계 방법에 대한 고민

  • setter 사용을 자제
    • 데이터는 불변이 최고다. 변하는 데이터라도 객체가 핸들링할 수 있어야 한다.
    • 객체 내부에서 외부 세계의 개입없이 자체적인 변경/가공으로 처리할 수 있는지를 확인한다.
    • 만약 외부에서 가지고 있는 데이터로 데이터 변경 요청을 해야 하는 경우 set~이라는 단순한 이름보다는 update~와 같이 의도를 드러내는 네이밍을 고려한다.
  • getter도 처음엔 사용을 자제
    • 외부에서 객체 내부의 데이터가 필요하다고 해서 getter를 남발하는 것은 좋지 못하다.
    • 객체에 메시지를 보내라.
Person person = new Person();

// Bad
if (person.get지갑().get신분증().findAge() >= 19) {
  pass();
}

// Good
if (person.isAgeGreaterThanOrEqualTo(19)) {
  pass();
}
  • 필드의 수는 최대한 적게 가져간다. -> 불필요한 데이터가 많을수록 복잡도가 놀아지고 대용량 변화가 많아진다.