Python设计模式:工厂模式

介绍:

  工厂模式是23种设计模式中最常用的模式之一,它又可以细分为简单工厂,工厂方法和抽象工厂。

  工厂模式可以解耦,把实例的创建和使用过程分开。其次,工厂模式将类实例化过程统一管理起来了,方便以后维护。

① 工厂方法:

定义:工厂方法定义了一个创建对象的接口,但由子类决定要实例化的类是哪个。工厂方法让类把实例化推迟到子类

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

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')
参考: https://www.jianshu.com/p/4c699c7a62c2
原文地址:https://www.cnblogs.com/jiaklop9/p/14388259.html