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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.