오브젝트를 읽고 - 4일차

박세건·2023년 12월 4일
0

오브젝트

목록 보기
3/3

느낀점

  • 책임 : 객체가 수신할 수 있는 메시지의 기반

  • 오퍼레이션명 + 인자 = 메시지 / 메시지 수신자 + 메시지 = 메시지 전송
    -> ex) isSatisfiedBy(screening) = 메시지 / condition.isSatisfiedBy(screening) = 메시지 전송

  • 퍼블릭 인터페이스에 포함된 메시지 : 오퍼레이션 / 실제 구현을 포함 : 메서드
    -시그니처 : 메서드의 이름과 인자의 목록 (반환타입을 포함하거나 포함하지 않는 언어가 존재)

  • 어떻게 수행하는지를 드러내는 이름은 내부 구현을 설명하기에 변경에 취약하다.
    -> isSatisFiedByPeriod() 와 같은 메서드명은 내부 구조를 알고 있다.
    -> 결과와 목적만 포함하도록 이름을 부여하라

  • 디미터 법칙과 묻지 말고 시키는 원칙을 지켰다면 어떤 이름이 드러나야 하는지도 생각하자

궁금했던 점

  • 194p : Audience 객체의 setTicket(Ticket ticket) 메서드 중 bag.hasInvitation() 메서드를 사용하는것이 왜 디미터 법칙을 위반한 것일까?
    -> 초대장을 갖고있는지 물어보는 메시지여서 위반한 것일까( 묻지말고 시켜라, 낯선자에게 말하지 말라 )
profile
멋있는 사람 - 일단 하자

0개의 댓글