设计模式是面向对象语言特有的内容,是在面向某一类问题时候固定的做法,设计模式有很多种,比较流行的是“GOF23种设计模式”。
对于初学者,可学习的最常用的模式是:工厂模式和单例模式。
工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进行统一的管理和控制。
单例模式的核心作用是确保一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的产生需要比较多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个“单例对象”,然后永久的驻留内存中,从而极大的降低开销。
设计工厂模式
// An highlighted block
'''测试工厂模式'''
class CarFactory:
def create_car(self,brand):
if brand=="奔驰":
return Benz()
elif brand=="宝马":
return BMW()
elif brand=="比亚迪":
return BYD()
else:
return("品牌未知")
class Benz():
pass
class BMW():
pass
class BYD():
pass
factory=CarFactory()
c1=factory.create_car("奔驰")
print(c1)
c2=factory.create_car("宝马")
print(c2)
设计单例模式
// An highlighted block
'''测试单例模式'''
class MySingletion:
__obj=None
__init_flag=True
def __new__(cls,*arg,**kwarge):
if cls.__obj==None:
cls.__obj=object.__new__(cls)
return cls.__obj
def __init__(self,name):
if MySingletion.__init_flag:
print("init...")
self.name=name
MySingletion.__init_flag=False
a=MySingletion('aa')
b=MySingletion('bb')
print(a)
print(b)
c=MySingletion("cc")
print(c)