python 工厂模式和单例设计模式
1 #单例设计模式 2 #单例设计一、重写new方法 二、重写构造方法 三、创建一个类属性判断此类是否已存在, 四、创建一个标识用于标识是否已被初始化过。 3 class MySingleton: 4 __obj=None 5 __init__flag=True 6 def __new__(cls, *args, **kwargs): 7 if cls.__obj==None: 8 cls.__obj=object.__new__(cls) 9 return cls.__obj 10 def __init__(self,name): 11 if MySingleton.__init__flag: 12 print('init....') 13 self.name=name 14 MySingleton.__init__flag=False
1 #工厂模式 2 class Benz: 3 pass 4 class BMW: 5 pass 6 class BYD: 7 pass 8 9 class CarFactory: 10 __obj=None 11 def __new__(cls, *args, **kwargs): 12 if cls.__obj==None: 13 cls.__obj=object.__new__(cls) 14 return cls.__obj 15 def createCar(self,brand): 16 if brand=='奔驰': 17 return Benz() 18 elif brand == '宝马': 19 return BMW() 20 elif brand == '比亚迪': 21 return BYD() 22 else: 23 return '未知品牌无法创建' 24 factory=CarFactory() 25 factory2=CarFactory() 26 print(factory) 27 print(factory2) 28 c1=factory.createCar('宝马')