서브시스템의 인터페이스 집합에 대한 하나의 상위 수준 인터페이스를 정의하는 패턴
퍼사드 패턴(Facade Pattern)의 목적은 복잡한 서브시스템을 인터페이스로 감싸서 사용하기 쉽게 만드는것이다.
퍼사드 패턴(Facade Pattern)은 구조 패턴(Structure Pattern)의 한 종류로, 서브 시스템들의 공통적인 기능을 정의하는 단순화된 산위 수준의 인터페이스를 정의하는 패턴이다. 서브시스템들 사이의 종속성을 줄일 수 있다.


| 구조패턴(Structural Pattern) 구조 패턴이란 작은 클래스들의 상속과 합성을 통해 더 큰 클래스를 생성하는 방법을 제공하는 패턴으로, 독립적으로 개발한 클래스들을 마치 하나인 것처럼 사용할 수 있다. |
퍼사드(Facade Pattern) 예시

다양한 서브 시스템이 함께 이용되는 시스템에서 Facade Class 는 이 서브 시스템들을 추상화할 수 있다.
Client는 서브시스템의 존재를 모르고 오직 Facade Class 만 알고 있으며 퍼사드 클래스만 접근할 수 있다. 이렇게 하면 클라이언트는 서브시스템으로 분리되어 서브세스템에 의존하지 않아도 된다.
public class Wash {
public Wash() {}
public void startWash() {
System.out.println("Start Washing");
}
}
public class SpanDry {
public SpanDry() {}
public void startDry() {
System.out.println("Start Drying");
}
}
public class Rinse {
public Rinse() {}
public void startRinse() {
System.out.println("Start Rinsing");
}
}public class Washer {
private final Wash wash;
private final Rinse rinse;
private final SpanDry spanDry;
public Washer() {
this.wash = new Wash();
this.rinse = new Rinse();
this.spanDry = new SpanDry();
}
public void start() {
wash.startWash();
rinse.startRinse();
spanDry.startDry();
}
}
public class Main {
public static void main(String[] args) {
Washer washer = new Washer();
washer.start();
}
}
장점 :
단점 :
https://dev-aiden.com/design%20pattern/Facade-Pattern/
[디자인 패턴][구조 패턴] 퍼사드 패턴(Facade Pattern)
퍼사드 패턴(Facade Pattern)
dev-aiden.com
https://wildeveloperetrain.tistory.com/99
디자인 패턴 - 퍼사드 패턴 (Facade Pattern) 개념과 예시
'디자인 패턴 중 하나인 퍼사드 패턴(Facade Pattern) 개념과 예시' *** 'Facade'는 프랑스어 'Façade'에서 유래된 단어로 건물의 출입구로 이용되는 정면 외벽 부분을 가리키는 말로 '건물의 정면'을 의미
wildeveloperetrain.tistory.com
https://lktprogrammer.tistory.com/42
09 퍼사드 패턴 (Facade Pattern)
퍼사드 패턴 (Facade Pattern) Facade는 "건물의 정면"을 의미하는 단어로 어떤 소프트웨어의 다른 커다란 코드 부분에 대하여 간략화된 인터페이스를 제공해주는 디자인 패턴을 의미합니다. 퍼사드
lktprogrammer.tistory.com
https://refactoring.guru/ko/design-patterns/facade
퍼사드 패턴
/ 디자인 패턴들 / 구조 패턴 퍼사드 패턴 다음 이름으로도 불립니다: Facade 의도 퍼사드 패턴은 라이브러리에 대한, 프레임워크에 대한 또는 다른 클래스들의 복잡한 집합에 대한 단순화된 인터
refactoring.guru
| [JAVA] GC : Garbage Collection (0) | 2023.04.16 |
|---|---|
| [JAVA] 메모리 관리 (0) | 2023.04.14 |
| [Design Pattern] Proxy Pattern : Remote Proxy (0) | 2023.04.02 |
| [Design Pattern] Proxy Pattern : Protection Pattern (0) | 2023.04.01 |
| [Design Pattern] Proxy Pattern : Virtual Proxy (0) | 2023.03.30 |