Python 디자인 모드 의 장식 모드 실례 상세 설명

본 논문 의 사례 는 Python 디자인 모델 의 장식 모델 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
장식 모델(Decorator Pattern):동태 적 으로 한 대상 에 게 추가 적 인 직책 을 추가 하면 기능 을 증가 하 는 데 있어 장식 모델 은 하위 클래스 를 생 성 하 는 것 보다 더욱 유연 하 다.
다음은 옷 을 입 히 는 과정 입 니 다.장식 모드 를 사용 하 세 요.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
      
    ――    
    (Decorator Pattern):                 ,       ,             .
  :                   ,                 
"""
#       
class Person(object):
  def __init__(self,name):
    self.name = name
  def show(self):
    print "   %s"%self.name
#   
class Finery(Person):
  def __init__(self):
    pass
  def Decorate(self,componet):
    self.componet = componet
  def show(self):
    if self.componet != None:
      self.componet.show()
#  ――T 
class TShirts(Finery):
  def __init__(self):
    pass
  def show(self):
    print 'T '
    self.componet.show()
#  ――   
class BigTrouser(Finery):
  def __init__(self):
    pass
  def show(self):
    print '   '
    self.componet.show()
#   ――   
class FlipFlops(Finery):
  def __init__(self):
    pass
  def show(self):
    print '   '
    self.componet.show()
if __name__ == '__main__':
  p = Person('Andy')
  ff = FlipFlops()
  bt = BigTrouser()
  ts = TShirts()
  ff.Decorate(p)
  bt.Decorate(ff)
  ts.Decorate(bt)
  ts.show()

실행 결과:
티셔츠.
큰 팬티
슬리퍼
분장 한 앤 디
이 몇 가지 유형의 디자인 은 다음 과 같다.

자체 장식 류 인 Finery 를 계승 하 는 대상 을 통 해 Person 류 에 직책 을 부여 하 는 기능 을 실현 하고 Person 류 는 Finery 의 존 재 를 감지 하지 않 습 니 다.
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기