더북(TheBook)

이러한 관계를 따르는 이유는 암묵적인 은유이기 때문이다.

  • 함수 호출 구문 print_time(start)에서 함수는 능동적인 에이전트가 된다. 이봐, print_time! 네가 출력할 객체가 여기 있어라고 말하는 식이다.
  • 객체 지향 프로그래밍에서는 객체가 능동적인 에이전트가 된다. start.print_time() 같은 메서드 호출은 이봐, start! 너 자신을 출력해줘라고 말하는 식이다.

이러한 관점의 변화가 더 뛰어나 보일 수는 있지만, 유용한가는 명확하지 않다. 지금까지 우리가 살펴본 예제에서도 이러한 관점이 유용하지 않을 수 있다. 그러나 책임을 함수에서 객체로 옮기면 더 다재다능한 함수(또는 메서드)를 작성할 수 있고, 코드를 유지보수하거나 재사용하기가 더 쉬워진다.

연습삼아 16.4 프로토타입 대 계획(270쪽)에서 작성한 time_to_int를 메서드로 재작성하라. int_to_time도 메서드로 작성하고 싶다고 생각할 수 있지만, 이를 호출할 객체가 없기 때문에 실제로는 의미가 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.