• Home
  • About
    • JUNGEEYOU photo

      JUNGEEYOU

      안녕하세요~ 유정이 입니다:)

    • Learn More
    • Email
    • LinkedIn
    • Github
  • Design Patterns
  • Algorithm
  • Python
  • MongoDB
  • Redis
  • Docker
  • Projects
  • Seminar
  • Etc

7-2. 퍼사드 패턴

17 Dec 2019

Reading time ~1 minute

👀 학습 목표

  • 퍼사드 패턴을 이해하자.

1. 퍼사드 패턴이란?

  • 퍼사이드 패턴은 단순화된 인터페이스를 통해서 서브시스템을 더 쉽게 사용하기 위한 용도로 사용됩니다.
  • 예를 들면, 컴퓨터를 켜면 운영 체제는 모든 컴퓨터의 내부 동작은 숨기고 간단한 인터페이만 사용자에게 제공한다. 또 다른 예로는 자동차가 있다.
    어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공합니다. 
    퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있습니다. 

퍼사드 패턴 다이어그램

Python/Untitled.png

2. python에서 사용되는 퍼사드 패턴

  • 아래와 같은 json 모듈도 퍼사드 패턴 중 하나로 실제 loads() 메소드 자세한 부분은 숨기고 있다. .
    import json 
    conetent = json.loads(res._content)
  • load() 메소드 구현
    def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,
            parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
        if (cls is None and encoding is None and object_hook is None and
                parse_int is None and parse_float is None and
                parse_constant is None and object_pairs_hook is None and not kw):
            return _default_decoder.decode(s)
        if cls is None:
            cls = JSONDecoder
        if object_hook is not None:
            kw['object_hook'] = object_hook
        if object_pairs_hook is not None:
            kw['object_pairs_hook'] = object_pairs_hook
        if parse_float is not None:
            kw['parse_float'] = parse_float
        if parse_int is not None:
            kw['parse_int'] = parse_int
        if parse_constant is not None:
            kw['parse_constant'] = parse_constant
        return cls(encoding=encoding, **kw).decode(s)

참고

  • Head first design patterns 책


FacadeFacade Pattern퍼사드 패턴head first design patternsdesign pattern Share Tweet +1