zoukankan      html  css  js  c++  java
  • Python_建造者模式

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    #建造者基类
    class PersonBuilder():
        def BuildHead(self):
            pass
    
        def BuildBody(self):
            pass
    
        def BuildArm(self):
            pass
    
        def BuildLeg(self):
            pass
    
    #胖子
    class PersonFatBuilder(PersonBuilder):
        type = u'胖子'
        def BuildHead(self):
            print u'构建%s的头' % self.type
    
        def BuildBody(self):
            print u'构建%s的身体' % self.type
    
        def BuildArm(self):
            print u'构建%s的手' % self.type
    
        def BuildLeg(self):
            print u'构建%s的脚' % self.type
    
    
    #瘦子
    class PersonThinBuilder(PersonBuilder):
        type = u'瘦子'
        def BuildHead(self):
            print u'构建%s的头' % self.type
    
        def BuildBody(self):
            print u'构建%s的身体' % self.type
    
        def BuildArm(self):
            print u'构建%s的手' % self.type
    
        def BuildLeg(self):
            print u'构建%s的脚' % self.type
    
    #指挥者
    class PersonDirector():
        pb = None;
        def __init__(self, pb):
            self.pb = pb
    
        def CreatePereson(self):
            self.pb.BuildHead()
            self.pb.BuildBody()
            self.pb.BuildArm()
            self.pb.BuildLeg()
    
    def clientUI():
        pb = PersonThinBuilder()
        pd = PersonDirector(pb)
        pd.CreatePereson()
    
        pb = PersonFatBuilder()
        pd = PersonDirector(pb)
        pd.CreatePereson()
        return
    
    if __name__ == '__main__':
        clientUI();
    
  • 相关阅读:
    winform中textbox属性Multiline=true时全选
    golang中的类和接口的使用
    beego上传文件
    golang 字符串操作实例
    golang操作文件
    golang获取程序运行路径
    ECharts使用心得
    es6新特性分享
    es6分享——变量的解构赋值
    NPM使用前设置和升级
  • 原文地址:https://www.cnblogs.com/zxlovenet/p/4073782.html
Copyright © 2011-2022 走看看