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