2018-4-22 Java DesignPattern (2)

자바 디자인패턴

  • 객체지향특성은 두구로 비유가 되고, 설계원친은 도구의 사용방법으로 비유가 된다. 디자인패턴은 레서피로 비유가 된다.
  • 디자인패턴은 객체지향의 특성 중 상속, 인터페이스, 합성(객체를 속성으로 사용)을 이용한다.

어댑터패턴(Adapter Pattern)

package DesignPattern;

class ServiceA {
    void runServerA() {
        System.out.println("ServiceA");
    }
}

class ServiceB {
    void runServerB() {
        System.out.println("ServiceB");
    }
}

public class ClientWithNoAdapter {
    public static void main(String[] args) {
        ServiceA sa1 = new ServiceA();
        ServiceB sa2 = new ServiceB();

        sa1.runServerA();
        sa2.runServerB();
    }
}

package DesignPattern;

class ServiceA {
    void runServerA() {
        System.out.println("ServiceA");
    }
}

class AdapterServiceA {
    ServiceA sa1 = new ServiceA();

    void runserver() {
        sa1.runServerA();
    }
}

class ServiceB {
    void runServerB() {
        System.out.println("ServiceB");
    }
}

class AdapterServiceB {
    ServiceB sb1 = new ServiceB();

    void runserver() {
        sb1.runServerB();
    }
}

public class ClientWithNoAdapter {
    public static void main(String[] args) {
        AdapterServiceA asa1 = new AdapterServiceA();
        AdapterServiceB asb1 = new AdapterServiceB();

        asa1.runserver();
        asb1.runserver();
    }
}

  • 클라이언트가 변환기를 통해서 runService()라는 동일한 메서드명으로 두 객체의 메서드를 호출하는 것을 볼 수 있다. 변환기들이 인터페이스를 구현하게 해서 더 개선을 할 수 있다.

어댑터 패턴은 합성, 즉 객체를 속성으로 만들어서 참조하는 패턴이다.

Written on April 22, 2018