<aside>
💡 한 줄 요약: 객체지향이란 데이터와 프로세스가 동일한 모듈 내부에 위치하는 것
</aside>
소극장 예시!
이벤트 당첨 vs 일반 입장
모듈: 1. 제대로 실행되어야함 2. 변경이 용이해야 함 3. 이해하기 쉬워야 함
-> 현재 코드 는 그렇지 못함.
-> 문제: 관람객과 판매원이 수동적 존재
이해 가능한 코드 == 동작이 예상을 크게 벗어나지 않는 코드
-> 문제: 세부적 내용을 다 기억해야함
-> 문제: 변경에 취약하다 == 의존성과 관련된 문제 (필요한 의존성만 남기자)
결합도가 높다 == 의존성이 과하다
변경 - 의사소통은 엮인 문제
해결방법: 관람객과 판매원을 능동적으로 만들자!
Theater.enter()의 TicketOffice에 접근하는 코드를 TicketOffice.sellTo()를 만들어 옮긴다.
캡슐화 - 객체 내부 사항을 감추는 것
우리 회사는 잘 안 되어 있구나?!
→ 예시 찾기
궁금) entity 필드에 관한 함수는 엔티티 내부에 있는 게 맞을까?