Python 디자인 패턴 학습을 위한 '외형 패턴' 소개 예제

高洛峰
풀어 주다: 2017-03-19 15:16:50
원래의
1249명이 탐색했습니다.

Python에서는 디자인 패턴외관 패턴이 결합을 줄이기 위해 코드를 여러 모듈로 나누는 것을 옹호합니다. 다음은 예시를 사용하여 설명합니다.

응용 기능:

복잡하고 작은 함수를 많이 호출해야 할 때, 이러한 호출이 어느 정도 관련되어 있는 경우, 즉 하나의 호출이 연속되는 경우가 있습니다.

구조적 특징:

기존의 복잡함과 수많은 통화를 하나의 엔트리 클래스로 통합하고, 앞으로는 이 하나의 엔트리를 통해서만 통화가 가능합니다.

코드 구조 예:

class ModuleOne(object):
  def Create(self):
    print 'create module one instance'
  def Delete(self):
    print 'delete module one instance'
class ModuleTwo(object):
  def Create(self):
    print 'create module two instance'
  def Delete(self):
    print 'delete module two instance'
class Facade(object):
  def init(self):
    self.module_one = ModuleOne()
    self.module_two = ModuleTwo()
  def create_module_one(self):
    self.module_one.Create()
  def create_module_two(self):
    self.module_two.Create()
  def create_both(self):
    self.module_one.Create()
    self.module_two.Create()
  def delete_module_one(self):
    self.module_one.Delete()
  def delete_module_two(self):
    self.module_two.Delete()
  def delete_both(self):
    self.module_one.Delete()
    self.module_two.Delete()
로그인 후 복사


프록시 모드와 다소 유사합니다. 차이점은 모양 모드가 하위 시스템을 프록시할 뿐만 아니라 동시에, 서브시스템 관점에서는 서브시스템의 각 모듈의 기능을 결합하여 외부 세계에 더 높은 수준의 인터페이스를 제공함으로써 의미적으로 서브시스템 수준의 요구를 충족시킨다. .

시스템 기능이 지속적으로 확장됨에 따라 결합을 줄이고, 시스템 코드 복잡성을 줄이고, 유지 관리성을 향상시키기 위해 시스템을 여러 하위 시스템 또는 하위 모듈로 나누어야 하는 경우 일반적으로 프록시 모드가 사용됩니다.

다른 예를 살펴보겠습니다.

class small_or_piece1: 
  def init(self): 
    pass 
   
  def do_small1(self): 
    print 'do small 1' 
   
class small_or_piece_2: 
  def init(self): 
    pass 
   
  def do_small2(self): 
    print 'do small 2' 
   
class small_or_piece_3: 
  def init(self): 
    pass 
   
  def do_small3(self): 
    print 'do small 3' 
 
class outside: 
  def init(self): 
    self.small1 = small_or_piece1() 
    self.small2 = small_or_piece_2() 
    self.small3 = small_or_piece_3() 
   
  def method1(self): 
    self.small1.do_small1()  ##如果这里调用的不只2两函数,作用就显示出来了,可以把原本复杂的函数调用关系清楚化,统一化 
    self.small2.do_small2() 
     
  def method2(self): 
    self.small2.do_small2() 
    self.small3.do_small3() 
 
if name == 'main': 
  osd = outside() 
  osd.method1() 
  osd.method2()
로그인 후 복사

결과:

do small 1 
do small 2 
do small 2 
do small 3
로그인 후 복사


위 내용은 Python 디자인 패턴 학습을 위한 '외형 패턴' 소개 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!