Facade Pattern이란?

▶ 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스 제공하여 서브시스템을 쉽게 사용이 가능합니다.


코드 요약 

▶ People 객체의 Facade 객체는 Calculator와 Print 객체를 동시에 이용합니다. Facade 객체가 Calculator와 Print 객체를 서브시스템으로 캡슐화를 해놓아서 People 객체는 실행하면 Facade 객체가 두 class의 로직을 호출 해줍니다. 


 

클래스 다이어그램

 

1. Calculator class

public class Calculator {
    public double add(double n1, double n2){
        return n1+n2;
    }
}

 

2. Print class

public class Print {
    public void print(double n){
        System.out.println(n);
    }
}

 

3. Facade class

public class Facade {

    private Calculator calculator;
    private Print print;

    public Facade(Calculator calculator, Print print) {
        this.calculator = calculator;
        this.print = print;
    }

    public void execute(double n1, double n2){
        double add = calculator.add(n1, n2);
        print.print(add);
    }
}

 

4. People class

public class People {
    private Facade facade;

    public People(Facade facade) {
        this.facade = facade;
    }

    public void execute(double n1, double n2){
        facade.execute(n1, n2);
    }
}

 

5. Main class

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        
        Print print = new Print();
        
        Facade facade = new Facade(calculator,print);
        
        People people = new People(facade);
        
        facade.execute(1,2);
    }
}

 

이처럼 여러가지의 객체를 통합적으로 사용하는 Facade 객체를 사용하여 서브시스템을 사용하는 것이 Facade Pattern입니다. 읽어주셔서 감사합니다. 

 

전체 코드는 아래에서 확인 가능합니다:)

https://github.com/rlaehdals/design-pattern

 

GitHub - rlaehdals/design-pattern

Contribute to rlaehdals/design-pattern development by creating an account on GitHub.

github.com