一、创建型模式
1、单例模式
1 class Singleton(object):
2 def __init__(self):
3 pass
4
5 def __new__(cls, *args, **kwargs):
6 if not hasattr(Singleton, "_instance"): # 反射
7 Singleton._instance = object.__new__(cls)
8 return Singleton._instance
9
10 obj1 = Singleton()
11 obj2 = Singleton()
12 print(obj1, obj2) #<__main__.Singleton object at 0x004415F0> <__main__.Singleton object at 0x004415F0>
2、工厂模式是一个在软件开发中用来创建对象的设计模式
工厂模式包涵一个超类。这个超类提供一个抽象化的接口来创建一个特定类型的对象,而不是决定哪个对象可以被创建。
class Person:
def __init__(self):
self.name = None
self.gender = None
def getName(self):
return self.name
def getGender(self):
return self.gender
class Male(Person):
def __init__(self, name):
print "Hello Mr." + name
class Female(Person):
def __init__(self, name):
print "Hello Miss." + name
class Factory:
def getPerson(self, name, gender):
if gender == ‘M':
return Male(name)
if gender == 'F':
return Female(name)
if __name__ == '__main__':
factory = Factory()
person = factory.getPerson("Chetan", "M")