Python设计模式:工厂模式

·  阅读 150
原文链接: zhuanlan.zhihu.com

工厂方法:

设计模式的“工厂”这个概念就是来源于我们现实中的工厂,我们把原材料、图纸等生产资料的投入到一个工厂里面,工厂就会给我们输出相应的产品,所以实现工厂方法很简单,一个函数就是一个工厂。

def fatory(drawing):
    if drawing == 'BMW':
        print("得到一辆宝马汽车")
        return '宝马汽车'

    if drawing == 'Benz':
        print("得到一辆奔驰汽车")
        return '奔驰汽车'

fatory('BMW')复制代码

抽象工厂

抽象工厂顾名思义是个生产的产品比较抽象的工厂,如果工厂方法生产出来的是汽车,那么抽象工厂生产出来的应该是汽车厂,汽车厂再用来生产汽车,是工厂方法向上再抽象了一层,相当于创建工厂的工厂

class CarFactory:
    def __str__(self):
        return '车厂'


class BoatFactory:
    def __str__(self):
        return '船厂'


class AbstractFactory:
    factory = {
        'boat_factory': BoatFactory,
        'car_factory': CarFactory,
    }

    @classmethod
    def get(cls, factory_name):
        factory = cls.factory.get(factory_name)
        print(f"得到一个{factory()}")
        return factory


AbstractFactory.get('car_factory')复制代码

收藏成功!
已添加到「」, 点击更改