设计模式
单例模式
某些场景下,我们需要一个类无论获取多少次类对象,都仅仅提供一个具体的实例,用以节约创建对象的开销和内存开销
# 单例模式 class StrTools:pass s1 = StrTools() s2 = StrTools() # 这里是两个独立对象 print(s1) print(s2) # 引入在另一个文件中的已创建的对象 from class_24 import str_tools s1 = str_tools s2 = str_tools # 两者一致 print(s1) print(s2)
# 单例模式 class StrTools:pass str_tools = StrTools()
工厂模式
用于大批量创建对象的时候有统一的入口,易于代码维护,当发生修改时,仅仅修改工厂类的创建方法即可
# 工厂模式
class Person:pass
class Worker(Person):pass
class Student(Person):pass
class Teacher(Person):pass
# 产生Person的工厂
class Factory:def get_person(self, p_type):if p_type == 'w':return Worker()elif p_type == 's':return Student()else:return Teacher()f = Factory()
worker = f.get_person('w')
student = f.get_person('s')
teacher = f.get_person('t')