<全てのデザインパターンを理解する> - 装飾的なパターン

ドレス装飾模様を再生する人々の本当のミックスを持つ本は、それを説明します。

ABC 輸入ABCMeta、abstractmethod 


クラスの人(メタクラス= ABCMeta):

    デフ __init__ (自己、名):
        self._name = 名前が

    @abstractmethod 
    DEF :(自己)を着用
         印刷" 着装... " 


クラスのエンジン(人):

    デフ __init__ (自己、名前、スキル):
        スーパー()。__init__ (名前)
        自己。__skill = スキル

    デフget_skill(自己):
         返す自己を。__スキル

    DEF (自己)を着用:
         プリント" 我の是{}工程师{} " .format(self.get_skill()、self._name)) スーパー()()を着用。


クラス教師(人数):

    デフ __init__ (自己、名前、タイトル):
        スーパー()。__init__ (名前)
        自己。__title = タイトル

    デフget_title(自己):
         返す自己を。__title 

    DEF (自己)着用:
         印刷" 我是{} {} " .format(self._name、self.get_title())) スーパー()摩耗()


クラスClothingDecorator(人):

    デフ __init__ (自己、人物):
        self._decorated = 

    defを着用(自己):
        self._decorated.wear()
        self.decorate()

    @abstractmethod 
    デフ飾る(自己):
         パス・


クラスCasualPantDecorator(ClothingDecorator) :

    デフ __init__ (自己、人物):
        スーパー()。__init__ (人)

    デフ(自己)飾る:
         プリント" 一条卡其色休闲裤" 


クラスBeltDecorator(ClothingDecorator):

    デフ __init__ (自己、人):
        スーパー()。__init__ (人)

    DEF 飾る(セルフ):
         印刷" 黒帯シルバーピンバックルヘッド" 


クラスLeatherShoeDecorator(ClothingDecorator):

    DEF  __init__ (セルフ、人):
        スーパー( 。)__init__ (人)

    DEF 飾る(セルフ):
         印刷" カジュアルシューズの1組暗い" 


クラスKnittedSweaterDecorator(ClothingDecorator):

    DEF  __init__ (セルフ、人):
        スーパー()__init__ (人)

    DEF飾る(セルフ):
         印刷" 紫色のニットセーター" 


クラスWhiteShirtDecorator(ClothingDecorator):

    DEF  __init__ (セルフ、人):
        スーパー()。__init__ (人)

    DEF 飾る(セルフ):
         印刷" 白シャツ" 


クラスGlassesDecorator(ClothingDecorator):

    DEF  __init__ (セルフ、人):
        スーパー()。__init__ (人)

    DEF 飾る(セルフ):
         印刷" 四角い黒の縁のメガネ


DEFtest_decorator():
    トニー =エンジン(" トニー"" 客户端" 
    パンツ = CasualPantDecorator(トニー)
    ベルト = BeltDecorator(パンツ) = LeatherShoeDecorator(ベルト)
    シャツ = WhiteShirtDecorator(靴)
    セーター = KnittedSweaterDecorator(シャツ)
    メガネ = GlassesDecorator (セーター)
    glasses.wear()

    プリント()
    decorator_teacher = GlassesDecorator(WhiteShirtDecorator(LeatherShoeDecorator(教師("井戸" " 教授" ))))
    decorator_teacher.wear()

test_decorator()
C:\ Python36 \ python.exeのC:ユーザ/ /サハラ/ PycharmProjects / test1の/ test.py 
私のクライアントエンジニアトニー。
ドレス。
カーキスラックスは
銀針が黒帯にバックル
暗色カジュアルシューズの一組、
白いシャツ
紫ニットセーター
正方形ブラック縁のメガネを、

I教授ウェルでした。
ドレス。
一暗色カジュアルシューズのペア
と白いシャツ
正方形ブラック縁のメガネ

プロセス終了コードで終了0

 

おすすめ

転載: www.cnblogs.com/aguncn/p/11333822.html