Java/DesignPattern

[Java-DesignPattern] Facade Pattern이란? 퍼사드 패턴 설명

Jeong Jeon
반응형

퍼사드 패턴은 시스템의 복잡성을 감추고, 사용자(Client)가 시스템에 접근할 수 있는 인터페이스(Interface)를 사용자(Client)에게 제공하는 방식이다.

따라서 퍼사드 패턴은 기존의 시스템에 인터페이스를 추가함으로, 복잡성을 감추기 위해 사용

 

백문이 불여일타 코드를 보고 머릿속에 정리해두자.

 

순서 ->

1). 관련 interface를 만든다.

public interface FacadeCoffee {
	void make();
}

 

2). 세부 Class를 만든다.

public class FacadeCappuccino implements FacadeCoffee {
	@Override
	public void make() {
		System.out.println("Cappuccino::make()");
	}
}
public class FacadeAmericano implements FacadeCoffee {
	@Override
	public void make() {
		System.out.println("Americano::make()");
	}
}

 

3). Facade Class를 만든다.

     -> 세부 Class를 생성자를 통해 instance를 생성시켜 준다.

public class FacadeCoffeeMachine {

	private FacadeCoffee americano;
	private FacadeCoffee cappuccino;

	public FacadeCoffeeMachine() {
		americano = new FacadeAmericano();
		cappuccino = new FacadeCappuccino();
	}

	public void makeAmericano() {
		americano.make();
	}

	public void makeCappuccino() {
		cappuccino.make();
	}
}

 

4). Facade Class를 통해 세부 기능들을 대리 호출한다.

public class FacadeMain {
	public static void main(String[] args) {
		FacadeCoffeeMachine coffeeMachine = new FacadeCoffeeMachine();

		coffeeMachine.makeAmericano();
		coffeeMachine.makeCappuccino();
	}
}

 

간단하다. Java의 기초지식만 있다면 구현과 이해는 쉽다고 생각하는 패턴이다.

코드를 구현할 때 미리 어떤식으로 구현할지 생각해보는게 중요하다....! 

 

반응형