This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| design_pattern:adapter_pattern [2017/10/27 09:32] – [상속을 이용한 구현] ledyx | design_pattern:adapter_pattern [2024/02/05 13:16] (current) – [Target, Adapter] ledyx | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| * 다른 용도로 감싸기때문에 ' | * 다른 용도로 감싸기때문에 ' | ||
| - | {{tag> | + | {{tag> |
| = 상속을 이용한 구현 = | = 상속을 이용한 구현 = | ||
| Line 75: | Line 75: | ||
| } | } | ||
| } | } | ||
| + | |||
| + | //test | ||
| + | //v1.0 | ||
| </ | </ | ||
| = 위임을 이용한 구현 = | = 위임을 이용한 구현 = | ||
| + | Target이 Class인 경우. Java나 C#은 다중상속이 되지 않기 때문에 **다른 인스턴스의 메소드에 맡김** | ||
| + | |||
| + | == Target, Adapter == | ||
| + | <sxh java> | ||
| + | /** | ||
| + | * 필요한, 변환될 것. Target | ||
| + | */ | ||
| + | public interface NewVerAPI { | ||
| + | void printMessage(); | ||
| + | void printVersion(); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <sxh java ; highlight: | ||
| + | /** | ||
| + | * 필요한, 변환될 것의 구현체. 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(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||