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

 

posted @ 2020-11-18 11:42  hisweetyGirl  阅读(143)  评论(0编辑  收藏  举报