01 _ 객체, 설계

소프트웨어 모듈의 목적

  1. 실행 중에 제대로 동작한다.
  2. 변경을 위해 존재한다.
  3. 코드를 읽는 사람과 의사소통 할 수 있어야 한다. - 클린 소프트웨어: 애자일 원칙과 패턴, 그리고 실천방법 로버트 마틴

03 설계 개선하기

  • CQRS? 명령/질의 분리

    • sellTo()
  • 코드 변경 용이

결합도와 자율성의 트레이드오프: 이건 결정하기 나름

시그니쳐가 변경된다면/.... 그것은 지옥

  • 무생물도 살아있는 것처럼 대한다.

Bag, TicketOffice의 사례 미녀와 야수의 '주전자' 처럼

Encapsulation의 의미가 모호한 이유 감추면 다른 시그니쳐가 필요한데 사실 그렇게 코딩하는걸 못봄 모든게 getter & setter