2009년 10월 22일 목요일

Bridge Pattern #2

예제프로그램

 

상속은 견고한 연결이고 위임은 느슨한 연결이다.

상속은 클래스 확장하기 위한 편리한 방법이지만 클래스가느이 연결을 강하게 고정시킵니다.
소스코드상에서
class SomethingFood extends Something {
...
}

라고 쓰면 SomethingGood 클래스는 Something 클래스의 하위 클래스가 됩니다. 그리고 이 관계는 소스 코드를 고쳐 쓰지 않는 한 바꿀 수 없는 매우 견고한 연결이 됩니다. 프로그램의 필요에 따라서 클래스 간에 관계를 척척 바꾸고 싶을 때에 상속을 사용하는 것은 부적절합니다. 교체할 때마다 소스 코드를 변결할 수 엇ㅂ기 때문입니다. 이와 같은 경우에는 위임을 사용합니다.
예제 프로그램에서는 Dispaly 클래스 내에서 위임이 사용되고 있습니다. Display 클래스의 impl 필드에는 구현되는 인스턴스가 저장되어 있어서
- open 을 실행할때에는 impl.rawOpen()을 호출
- print 를 실행할때에는 impl.rawPrint()를 호출
- close 를 실핼할때에는 impl.rawClose()를 호출
라는 식으로 떠넘기기를 하고 있습니다. 이것이 위임입니다. 상속은 견고한 연결이고 위임은 느슨한 연결이빈다. Display 클래스의 인스턴스를 만드는 관계에서 인수로 전달되어 온 것과 연결되기 때문입니다.



 


 

댓글 없음:

댓글 쓰기