Design Pattern for Smalltalk – adapter

t_Dpsc_chapter04_Adapter_01v2

adapter패턴은 어떤 class의 interface가 원하는 규칙에 어긋날 때 범용성을 확보하기 위해서 어떤 class의 앞줄에 원하는 interface를 구현해서 인자나 동작등을 변환하는 구조를 의미한다. 이 경우 어떤 class를 adaptee, 동작이나 interface를 변환하는 역할을 adapter 라고 한다. 구현에는 크게 분류해서 class adapter와 object adapter의 두가지 방식이 있다.

class adapter 방식은 기반이 되는 상위클래스를 하나 상속해서 그것에 살을 덧붙여 구현하는 방식으로 오버라이드를 사용할 수 있으며 새로 구현된 클래스의 인스턴스가 목적에 대한 직접적인 역할을 가지게 된다.

object adapter 방식은 별도의 클래스를 하나 만들어서 그 클래스에 필요한 다른 클래스(adaptee)의 인스턴스를 내부 조작에 따라 그때 그때 사용하는 것으로서, 유연하기는 하지만 직접적인 역할은 해당 기능을 하는 클래스이 인스턴스로 넘기게 된다. 이 경우 adaptee 클래스를 내부에서 바로 사용하는 것 보다는 adaptee에 사용을 원하는 용도의 하위클래스를 만들고, 그렇게 만들어진 하위클래스의 인스턴스를 사용하는것이 가장 좋다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.