PSD( Private-Self-Development )

파사드 패턴 본문

Backend/디자인패턴

파사드 패턴

chjysm 2023. 5. 23. 10:25

파사드 패턴? 

파사드의 어원은 프랑스어(facade) 로 건물의 정면이라는 뜻이다.

라이브러리, 프레임워크, 다른 클래스, 서브 서비스 등 복잡한 서브 시스템에 대한 단순화된 인터페이스를 제공하는 구조적 디자인 패턴이다.

 

우리는 대부분 무의식적으로 파사드 패턴을 사용하고 있는 경우가 많다.

예를들어 네이버 로그인 API 호출을 위한 로직을 하나의 클래스에 모아놓고 
이를 사용하는 곳에서는 이를 호출해서 사용하도록 하는 것도 파사드 패턴의 하나이다.

 

이처럼, 파사드 패턴은 생김새가 다양하다.

 

최소 지식 원칙 지키며 파사드 패턴을 적용하는 것이 좋다.

 

최소 지식 원칙 ?

https://chjysm.tistory.com/60

 

최소 지식 원칙( 데메테르의 법칙 )

최소 지식 복잡하게 얽혀 있는 서브 시스템의 어떤 부분을 수정할 경우 관련된 다른 부분도 수정해야 하는 경우가 있다. 이때, 어느 하나를 수정하기 위해서 관련된 많은 정보를 알고 있어야 한

chjysm.tistory.com

 

파사드 패턴의 장점

  • 서브 시스템 보호
    • 서브 시스템의 구성요소를 직접 호출하지 않으므로 잘못된 사용을 방지 할 수 있다.
  • 확장성 
    • 서브 시스템을 변경하여도 파사드 패턴이 완충작용을 하여 확장이나 수정하기 수월해진다.
  • 결합도 감소
  • 계층화
    • 서브 시스템이 계층화 된 경우, 파사드 패턴을 이용하면 이 계층에 단계별로 접근할 수 있다.
  • 이식성
  • 캡슐화

 

파사드 패턴의 단점

  • 잘못 사용한 경우 모든 클래스에 결합된 객체가 될 수 있다.

 

파사드 패턴의 구현

public class test1 {
    public void method(){
        System.out.println("test1");
    }
}

public class test2 {
    public void method(){
        System.out.println("test2");
    }
}

public class Facade {
    private test1 test1;
    private test2 test2;

    Facade(){
        test1 = new test1();
        test2 = new test2();
    }

    public void method(){
        test1.method();
        test2.method();
    }
}

 

언제 사용해야 할까?

  • 라이브러리, 프레임워크, 다른 클래스, 서브 서비스 등 복잡한 서브 시스템 을 사용하는 경우
  • 타팀 혹은 여러 도메인간 협업해야 하는 경우
  • 등 너무 많다..

 


참조

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

'Backend > 디자인패턴' 카테고리의 다른 글

명령 패턴  (0) 2023.05.30
플라이웨이트 패턴  (0) 2023.05.23
장식자 패턴  (0) 2023.05.22
복합체 패턴  (0) 2023.05.19
브리지 패턴  (0) 2023.05.15