python实现单例工厂模式

Posted 梦乡尘子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现单例工厂模式相关的知识,希望对你有一定的参考价值。

class CarFactory:

    '''python实现单例工厂模式'''

    __obj = None
    __flg_init = True

    def __new__(cls, *args, **kwargs):
        if cls.__obj is None:
            cls.__obj = object.__new__(CarFactory)

        return cls.__obj

    def __init__(self):
        if CarFactory.__flg_init:
            print('工厂产生了')
            CarFactory.__flg_init = False

    def creatCar(self, car_name):

        if car_name == 'Benz':
            car = Benz()

        elif car_name == 'BMW':
            car = BMW()

        else:
            car = BYD()

        return car


class Benz:
    def __init__(self):
        print('奔驰产生了')


class BMW:
    def __init__(self):
        print('宝马产生了')


class BYD:
    def __init__(self):
        print('比亚迪产生了')


cf = CarFactory()
cf2 = CarFactory()

print(cf)
print(cf2)

cf.creatCar('123')

cf2.creatCar('Benz')

以上是关于python实现单例工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

Python入门-6面向对象编程:12设计模式之工厂模式-单例模式

python-单例模式&工厂模式

Python有设计模式么

Python版设计模式: 创建型模式:单例模式和工厂模式家族

设计模式之单例模式

你熟悉的设计模式都有哪些?写出单例模式的实现代码