• 技术文章 >Python技术 >Python基础教程

    python建造者模式是什么

    小妮浅浅小妮浅浅2021-08-23 09:30:52原创1898

    说明

    1、属于创建型模式,提供了创建对象的最佳方式。

    2、该模式使用多个简单的对象逐步构建复杂的对象,Builder类逐步构建最终对象,该Builder类独立于其他对象。

    由各部分的子对象用一定的算法构成,因为需求的变化,该复杂对象的各部分经常面临剧烈的变化,但结合起来的算法相对稳定。

    实例

    class Item:
        # Item类提供水果的基础信息的抽象类
        def set_name(self):
            pass
     
        def packing(self):
            pass
     
        def set_price(self):
            pass
     
        def set_weight(self):
            pass
     
        def promotion_price(self):
            pass
     
     
    class Pack:
        # Pack管理水果的包装方式
        def pack(self):
            pass
     
     
    class box_pack(Pack):
        # box-pack采用盒装方式
        def pack(self):
            return "盒装"
     
     
    class bag_pack(Pack):
        # bag-pack采用袋装方式
        def pack(self):
            return "袋装"
     
     
    class Grape(Item):
        # 葡萄类
        def packing(self):
            wrap = box_pack()
            return wrap
     
        def set_price(self):
            grape_price = 18.0
            return grape_price
     
        def set_name(self):
            grape_name = "葡萄"
            return grape_name
     
        def set_weight(self):
            grape_weight = 2.5
            return grape_weight
     
        def promotion_price(self):
            return 28.99
     
     
    class Hami_Melon(Item):
        # 哈密瓜类
        def packing(self):
            wrap = bag_pack()
            return wrap
     
        def set_price(self):
            hami_melon_price = 22.0
            return hami_melon_price
     
        def set_name(self):
            hami_melon_name = "哈密瓜"
            return hami_melon_name
     
        def set_weight(self):
            hami_melon_weight = 3.2
            return hami_melon_weight
     
        def promotion_price(self):
            return 39.99
     
     
    class Orange(Item):
        # 橘子大类
        def packing(self):
            wrap = bag_pack()
            return wrap
     
        def set_price(self):
            pass
     
     
    class Citrus(Orange):
        # 柑橘类
        def set_price(self):
            citrus_price = 12.5
            return citrus_price
     
        def set_name(self):
            citrus_name = "柑橘"
            return citrus_name
     
        def set_weight(self):
            citrus_weight = 2.6
            return citrus_weight
     
        def promotion_price(self):
            return 18.88
     
     
    class Tangerine(Orange):
        # 冰橘类
        def set_price(self):
            tangerine_price = 13.0
            return tangerine_price
     
        def set_name(self):
            tangerine_name = "冰橘"
            return tangerine_name
     
        def set_weight(self):
            citrus_weight = 3.3
            return citrus_weight
     
        def promotion_price(self):
            return 26.66
     
     
    class Menu:
        def __init__(self):
            self.items = []
     
        def AddItem(self, item):
            # 添加item,即添加参与促销活动的水果
            self.items.append(item)
     
        def ShowItems(self):
            # ShowItem,展示参与促销活动的水果清单
            print("-*-" * 5 + "限时促销清单" + "-*-" * 10)
            for item in self.items:
                print("◎Item:" + item.set_name() + " 包装:" + item.packing().pack() + " 原价:" + str(
                    item.set_price()) + "元/千克" + " 重量:" + str(item.set_weight()) + "千克" + "\n        限时促销价:" +
                      str(item.promotion_price()) + "元!!!")
            print("-*-" * 5 + "限时促销清单" + "-*-" * 10)
     
     
    class MenuBuilder:
        @staticmethod
        def PrepareMenu():
            # 构造清单,过程如下:
            menu = Menu()
            menu.AddItem(Grape())
            menu.AddItem(Citrus())
            menu.AddItem(Tangerine())
            menu.AddItem(Hami_Melon())
            return menu
     
     
    if __name__ == '__main__':
        # 新建一个建造者
        menu_builder = MenuBuilder()
        # 建造促销活动的水果清单
        menu_object = menu_builder.PrepareMenu()
        # 展示参与促销活动的水果信息
        menu_object.ShowItems()

    以上就是python建造者模式的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python建造者模式
    上一篇:python线程事件Event的原理 下一篇:python中Pylint的信息类型

    相关文章推荐

    • python析构函数的使用注意• python中类对象的介绍• python类属性的概念• python类属性的内存分析• python类方法的使用注意• python静态方法的使用注意点• python访问元组的两种方法• python多线程的执行分析• python字符串结合操作符的使用• python中mainloop()方法的使用• python设置的窗口位置• python中del在垃圾回收的使用• python线程中Condition的原理• python线程事件Event的原理

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网