将学到的设计模式用python实现,慢慢汇总
单例模式
class MyClass:
__instance = None
__firstIns = False
def __new__(cls, *args, **kwargs):
if cls.__instance is None:
print('new class')
MyClass.__instance = super().__new__(cls)
return cls.__instance
def __init__(self, *args, **kwargs):
if self.__firstIns:
return
print('__init__')
MyClass.__firstIns = True
self.name = kwargs.get('name', 'lihe')
def __call__(self, *args, **kwargs):
print('called')
def getName(self):
return self.name
if __name__ == "__main__":
A = MyClass(name='aabb')
B = MyClass(name='lbw')
print(A.getName())
print(B.getName())