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