设计模式

设计模式

总共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('bob')
obj2 = MyClass('kavin')
print(id(obj1), id(obj2))
print(obj1.__dict__, obj2.__dict__) 
'''单列模式实现很多 方式不固定'''

pickle模块

'''该模块只支持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('bob')
obj.choose_course()
with open(r'%s' % obj.name,'wb')as f:
    pickle.dump(obj, f)
with open(r'bob', 'rb')as f:
    data = pickle.load(f)

print(data)
print(data.name)
print(data.school)

posted @ 2022-04-12 22:49  末笙  阅读(28)  评论(0)    收藏  举报