본문 바로가기

프로그래밍 강의 메모/코딩으로 학습하는 GoF의 디자인 패턴_백기선

구조 관련 디자인 패턴 > 퍼사드 패턴(Facade Pattern)

https://inf.run/6Shr

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com

 

 

퍼사드 패턴

  • 구조 관련 디자인 패턴.
  • 복잡한 서드 시스템 의존성을 최소화 하는 방법.
  • 클라이언트가 사용해야 하는 복잡한 서브 시스템 의존성을 간단한 인터페이스로 추상화할 수 있다.

 

 

퍼사드로 내부 디테일한 로직을 숨기고 있다.

느슨하게 결합한 구조를 지향하는 패턴이다.

 

 

 

 

패턴 적용하기

클라이언트가 갖고 있는 의존성을 퍼사드로 옮기는 것 뿐인 조삼모사 구조가 아닌가?

 

위와 같은 의문을 갖을 수 있다.

 

이메일을 보내는 작업을 여러 곳에서 할 경우 이러한 패턴의 효과가 있다.

클라이언트가 여러 곳일 때 이메일 세팅을 바꿀 때 변경해야할 코드가 엄청 많을 것이다.

이러한 것을 한곳으로 모아놓는다는 것만 해도 의미가 있다.

 

 

퍼사드 패턴의 장점과 단점

장점

1. 서브 시스템에 대한 의존성을 한곳으로 모을 수 있다.

2. 추상화를 시키면 API에 대한 깊이 있는 학습없이 기능을 사용할 수 있게 한다

단점

Facade 클래스가 서브 시스템에 대한 모든 의존성을 가지게 된다.

 

 

 

 

 

 

https://refactoring.guru/ko/design-patterns/facade

 

Facade

Intent Facade is a structural design pattern that provides a simplified interface to a library, a framework, or any other complex set of classes. Problem Imagine that you must make your code work with a broad set of objects that belong to a sophisticated

refactoring.guru