NLP Blog

파이썬 디자인 패턴 - 생성디자인패턴 - 싱글턴 패턴 + 파이썬 생성디자인 패턴 정리

|

1-5. 싱글턴 패턴


  • 싱글턴 패턴은 프로그램 전체에서 어떤 클래스의 인스턴스가 오직 하나만 필요할 때 활용
  • 일부 긱체 지향 언어에서는 싱글턴 생성이 매우 복잡하지만 파이썬은 굉장히 쉽다.
  • 가장 쉬운 방법은 비공개 변수에 저장되어 공개된 함수를 통해서만 접근할 수 있는 전역 상태를 지닌 모듈을 생성하는 것

currnecy rate.py

  • 환율에 대한 dict (key=통화 이름, value=환율)을 반환하는 함수가 필요
  • 이 함수를 여러 번 호출할 수도 있겠지만, 대부분의 경우 이 값을 단 한번만(호출할 때마다가 아니고) 가져오고자 한다
  • 싱글턴 패턴을 활용
    • get.rates dict를 get() 메서드의 attribute로 생성했는데, 이는 비공개 attribute에 해당한다.
    • 공개함수 get()은 처흠 호출되면(또는 refresh=True이면) 환율을 다운로드 한다.
    • 그렇지 않은 경우, 가장 최근에 다운로드한 환율 dict를 반환
    • 클래스를 만들 필요가 없이 싱글턴 데이터값을 갖게 된 셈이다.

파이썬 생성 디자인 패턴의 정리

  • 모든 디자인 패턴은 파이썬으로 간단히 구현이 가능
  • 싱글턴 패턴은 모듈을 활용해 직접적으로 구현 가능
  • 프로토타입 패턴은 클래스 객체에 대한 동적 접근을 허용하는 파이썬의 특성상 필요하지 않음 (copy모듈을 통해 구현 가능)
  • 파이썬에서 가장 유용한 생성 디자인 패턴
    • 팩터리 메서드 패턴
    • 빌더 패턴

Comments