1.单例模式
- 单例模式是什么
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类就叫做单例类,单例模式是一种对象创建型模式
- 创建单例-保证有且仅有一个对象
class Singleton(object):
__instance = None
def __new__(cls):
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls.__instance
a = Singleton()
b = Singleton()
print(id(a))
print(id(b))
打印结果如下:
1948867978800
1948867978800
2.工厂模式
工厂模式是我们最常用的实例化对象的模式了,是用工厂方法代替new操作的一种模式。虽然这样做,可能多做一些工作,但会给你的系统带来更大的可扩展性和尽量少的修改量(可维护性)
class Person(object):
def __init__(self, name):
self.name = name
def work(self, type_axe):
print("%s开始工作了" % self.name)
axe = Factory.create_axe(type_axe)
axe.cut_trees()
class Axe(object):
def cut_trees(self):
print("开始砍树了")
class StoneAxe(Axe):
def cut_trees(self):
print("使用石斧头砍树")
class SteelAxe(Axe):
def cut_trees(self):
print("使用钢斧头砍树")
#创建工厂方法
class Factory(object):
@staticmethod
def create_axe(type_axe):
if type_axe == "stone":
return StoneAxe()
elif type_axe == "steel":
return SteelAxe()
else:
print("传入斧头类型不符")
p = Person("张三")
p.work("stone")