본문 바로가기
이론/디자인패턴

[디자인패턴] 파사드 패턴 Pasade Pattern

by 6161990 2021. 6. 6.

📌 Facade pattern 

Facade 는 건물의 앞쪽 정면이라는 뜻을 가진다. 

여러 개의 객체와 실제 사용하는 서브 객체의 사이에 복잡한 의존관계가 있을 때, 

중간에 facade 라는 객체를 두고, 여기서 제공하는 interface만을 활용하여 기능을 사용하는 방식이다. 

단, Facade는 자신이 가지고 있는 각 클래스의 기능을 명확히 알아야 한다. 

 

 

Fasade pattern을 이용한 예

 

이처럼 파사드 패턴은 여러 개의 객체를 합쳐서 기능을 만들때 사용한다.

직접 살펴보자.

 

 

 

 

먼저, 파사드 패턴을 이용하지 않고 구현해보자.

Ftp 클래스

 

Reader 클래스

 

 

Writer 클래스

 

 

Main 클래스

 

 

결과 

 

 

 

 

이제는 pasade 패턴을 이용해보자.

 

파사드역할을 하는 SftpClient 클래스 

 

 

9-13 Ftp, Reader, Writer 에서 필요한 변수들을 SftpClient 클래스 생성자로 만든다 

=> SftpClient 에서는 Ftp, Reader, Writer의 기능을 합친다. 

 

Main

SftpClient 클래스를 만들기 전과 비교해봤을 때, 코드의 양이 확 줄었다. 

 

 

결과는 이전과 같다.