본문 바로가기
개발/디자인 패턴

[Java 언어로 배우는 디자인 패턴 입문] 입문 2. Adapter- 재이용

by hongdor 2021. 1. 4.
728x90

출처 : 책 - java 언어로 배우는 디자인 패턴 입문

 

 

1. 사용 이유

 

(1) 목적

- 기존의 것을 감싸서 재이용한다.

- 소속 인터페이스 말고 다른 인터페이스 맞출 때 사용한다.

 

(2) 특징

- Wrapper 패턴으로 불리기도 한다.

- 상속 또는 인스턴스를 이용한다.

- 기존의 검증된 Class를 재사용 하면 신뢰성이 향상된다.

- 메소드를 감싸서 새로운 메소드를 만든 다음 다른 인터페이스에 끼워 넣을수도 있다.

 

 

2. 예제

 

(1) Banner 

public class Banner {
    private String string;
    public Banner(String string) {
        this.string = string;
    }
    public void showWithParen() {
        System.out.println("(" + string + ")");
    }
    public void showWithAster() {
        System.out.println("*" + string + "*");
    }
}

 

(2) Print - Banner 클래스를 감싸 Print 인터페이스에 맞춘다.

public interface Print {
    public abstract void printWeak();
    public abstract void printStrong();
}

 

(3) PrintBanner ( 방법 1 : 상속 )

public class PrintBanner extends Banner implements Print {
    public PrintBanner(String string) {
        super(string);
    }
    public void printWeak() {
        showWithParen();
    }
    public void printStrong() {
        showWithAster();
    }
}

 

(4) PrintBanner (방법 2 : 인스턴스 )

public class PrintBanner extends Print {
    private Banner banner;
    public PrintBanner(String string) {
        this.banner = new Banner(string);
    }
    public void printWeak() {
        banner.showWithParen();
    }
    public void printStrong() {
        banner.showWithAster();
    }
}
728x90

댓글