=== Converter Method === 스몰토크의 String 클래스에 보면 asDate라는 메세지가 있다. 켄트벡이 경험한 정말 극단적인 경우에 하나의 객체마다 다른 형태로 변환시켜주는 Converter Method가 30개씩 있었다고 한다. 새로운 객체가 추가될때마다 저 30개의 메소드를 모두 추가해줘야만 했던 것이다. ---- 위의 일화와 같이 객체안에다가 Converting 해주는 메소드를 계속 추가 하다보면 끝도 없이 많은 메소드가 나올 것이다. 게다가 수신객체와의 커플링이 증가한다. 이것을 피하려면? 컨버전할것만 구현하면 된다. ---- {{{~cpp class Collection { /* ... */ public: Set asSet() { /* ... */ } }; }}} 위 예제에서 Set은 Collection처럼 동작해야 한다. 즉, 객체가 리턴한것은 수신 객체와 같은 프로토콜을 가지고 있어야 한다. C++에서는 상속으로 해결할 수 있을듯하다. ---- [SBPPSummary]