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('宝马')