在IT行业中设计模式总共有23种,大致可以分为三大类分别是创建型、结构型和行为型。
设计模式是经过反复验证用于解决固定问题的固定套路。
设计模式之单例模式
单例模式的意思是一个类只能产生一个对象,用于节省资源,比如有一个类中有很多绑定给对象的方法,我们需要在很多地方使用它,那么不同的程序员来用不知道有没有产生对象,所以自己会创建一个新对象,如此往复则会造成资源的浪费。
所以我们需要在类实例化对象的时候进行干涉 >>>: 元类
单例模式:(可以有很多种编写方式)
class Single(type): new_obj = None def __call__(self, *args, **kwargs): if not self.new_obj: obj = super().__call__(*args, **kwargs) self.new_obj = obj return self.new_obj return self.new_obj class MyClass(metaclass=Single): def __init__(self, name): self.name = name obj1 = MyClass('jason') obj2 = MyClass('tony') print(id(obj1), id(obj2)) print(obj1.__dict__, obj2.__dict__)
并且该模块只支持 python,兼容性很差。
大致用于,将对象保存到文件,并且取出来之后还可以使用对象的功能。
import pickle class MyClass(object): school = 'school' def __init__(self, name): self.name = name def choose_course(self): print('%s正在选课' % self.name) obj = MyClass('jason') print(obj.school) obj.choose_course() # pickle可以 with open(r'%s' % obj.name, 'wb') as f: pickle.dump(obj, f) with open(r'jason', 'rb') as f: data = pickle.load(f) print(data) print(data.name) print(data.school)