Both sides previous revisionPrevious revisionNext revision | Previous revision |
design_pattern:adapter_pattern [2017/10/27 10:32] – [상속을 이용한 구현] ledyx | design_pattern:adapter_pattern [2024/02/05 13:16] (current) – [Target, Adapter] ledyx |
---|
* 다른 용도로 감싸기때문에 'Wrapper' Pattern이라고도 불림. | * 다른 용도로 감싸기때문에 'Wrapper' Pattern이라고도 불림. |
| |
{{tag>Architecture Modeling DesignPattern Structional}} | {{tag>Architecture Modeling Design_Pattern Structural}} |
| |
= 상속을 이용한 구현 = | = 상속을 이용한 구현 = |
} | } |
} | } |
| |
| //test |
| //v1.0 |
</sxh> | </sxh> |
| |
| |
= 위임을 이용한 구현 = | = 위임을 이용한 구현 = |
| Target이 Class인 경우. Java나 C#은 다중상속이 되지 않기 때문에 **다른 인스턴스의 메소드에 맡김** |
| |
| == Target, Adapter == |
| <sxh java> |
| /** |
| * 필요한, 변환될 것. Target |
| */ |
| public interface NewVerAPI { |
| void printMessage(); |
| void printVersion(); |
| } |
| </sxh> |
| |
| <sxh java ; highlight:[5]> |
| /** |
| * 필요한, 변환될 것의 구현체. Adapter |
| */ |
| public class NewVerAPIImpl implements NewVerAPI { |
| private OldVerAPI oldVerAPI; |
| |
| public NewVerAPIImpl(String str) { |
| this.oldVerAPI = new OldVerAPI(str); |
| } |
| |
| @Override |
| public void printMessage() { |
| oldVerAPI.showMessage(); |
| } |
| |
| @Override |
| public void printVersion() { |
| System.out.println("v1.0"); |
| } |
| } |
| </sxh> |