python建造者模式是什么

美女程序员鼓励师

说明

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建造者模式是什么 的全部内容, 来源链接: utcz.com/z/545216.html

回到顶部