ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Facade Pattern(퍼사드 패턴)
    IT 2020. 12. 14. 15:00

    이번에 들어가는 프로젝트의 구성이 퍼사드 패턴이라, 프로젝트의 구성을 익힐겸 블로그 글을 정리하게 됐다.

    퍼사드 패턴이란?

    디자인 패턴 중 하나로, 어떤 소프트웨어의 다른 커다란 부분에 대한 간략화된 인터페이스를 제공하는 객체이다.

    네이버 지식 백과 퍼사드 패턴 : https://terms.naver.com/entry.nhn?docId=3532968&cid=58528&categoryId=58528

    프로젝트 코드 분석을 하면서 퍼사드 패턴을 처음 알게 되었는데 왜 사용하는지에 대해 의문을 가졌었다.
    프로젝트 구조에서 Facade란 관계있는 클래스들을 묶어 하나의 클래스 또는 인터페이스로 관리해서 전달하는 역할밖에 하지 않아서 특별한 역할이 없다고도 생각했었다.
    하지만 이게 바로 퍼사드 패턴의 핵심이었다.

    관계있는 클래스들을 하나의 Facade로 묶어 여러개의 서브클래스들을 하나의 Facade 객체가 모두 관리를 하기 때문에, 이 Facade 클래스 또는 인터페이스만 알고 있다면 하위 클래스들을 모두 사용할 수 있다는 큰 장점이 있다.

    클래스간의 복잡도나, 의존관계가 낮아진다

    예를 들자면, TV를 조작하는 시스템을 만든다 할때, TV 전원 클래스, 소리 조절 클래스, 채널 변경 클래스를 하나의 TV Facade가 관리를 하게 된다.

    이렇게 되면 TV에 관련된 클래스를 사용하고자 할 때, TV Facade만 가져온다면 하위 서브클래스들을 모두 사용할 수 있다는 장점이 있다.

    글을 마치며,,

    우리 프로젝트는 이렇게 생성된 여러 Facade를 ExFacade로 다시 한번 묶어 관리를 한다.(서비스가 엄청 큰편은 아니지만, 작은 편도 아니라서 ExFacade로 다시 한번 묶는 것 같다..)

    아직 Facade 패턴을 접하기만 하고 제대로 사용해보지 않아서, 이번 프로젝트를 통해 확실히 배울 수 있었으면 한다,,ㅎㅎㅎ

Designed by Tistory.