39~

01 티켓 판매 애플리케이션 구현하기

02 무엇이 문제인가

로버트 마틴 왈 소프트웨어 모듈이 가져야하는 세 가지 기능

  • 실행 중에 제대로 동작
  • 변경을 위해 존재
  • 코드를 읽는 사람과 의사소통

객체지향 설계는 서로 의존하면서 협력하는 객체들의 공동체를 구축하는 것. 따라서 애플리케이션을 구현하면서 최소한의 의존성만 유지하고 불필요한 의존성은 제거하자.

의존성이 과한 경우를 결합도가 높다고 한다.

03 설계 개선하기

각 객체를 자율적인 존재로 만드는 걸 목표

자기 자신의 문제를 스스로 해결하도록 코드를 개선

캡슐화와 응집도

핵심은 객체 내부의 상태를 캡슐화 하고 객체 간에 오직 메시지를 통해서만 상호작용하도록 만드는것.

밀접하게 연관된 작업만을 수항해고 연관성 없는 작업은 다른 객체에게 위임하는 객체를 가리켜 응집도가 높다고 말한다.

응집도 높이려면 객체 스스로 자신의 데이터를 책임져야한다.

절차지향과 객체지향

58~