Python设计模式
Python设计模式
单例模式
掌握单例模式的作用和写法
设计模式
设计模式是一种编程套路,可以极大的方便程序的开发
最常见、最经典的设计模式,就是面向对象
除了面向对象以外,在编程中也有很多既定的套路可以方便开发,称之为设计模式:
单例、工厂模式;建造者、责任链、状态、备忘录、解释器、访问者、观察者、中介、模板、代理模式;等等模式
设计模式非常多,基础阶段先暂时学习两种常用的
单例模式是一种常用的设计软件模式,该模式的主要目的是确保某一类只有一个实例存在,在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场
定义:保证一个类只有一个实例,并提供一个访问它的全局访问点
适用场景:当一个类只能有一个实例,而用户可以从一个众所周知的访问点访问它时
class StrTools:passs1 = StrTools()
s2 = StrTools()
print(s1)
print(s2)"""
# str_tools.py 文件class StrTools:pass
str_tool = strtools()
""""""
# test.py 文件from str_tools_py import str_tools1 = str_tool
s2 = str_toolprint(id(s1))
print(id(s2))
"""
总结
1.什么是设计模式
设计模式就是一种编程套路
使用特定的套路得到特定的效果
2.什么是单例设计模式
单例模式就是对一个类,只获取其唯一的类实例对象,持续复用它:节省内存;节省创建对象的开销
工厂模式
掌握工厂模式的作用和写法
工厂模式当需要大量创建一个类的实例的时候,可以使用工厂模式。即,从原生的使用类的构造去创建对象的形式
迁移到,基于工厂提供的方法去创建对象的形式
class Person:pass
class Worker(Person):pass
class Student(Person):pass
class Teacher(Person):pass"""
worker = Worker()
stu = Student()
teacher = Teacher()
"""
# 工厂模式代码
class PersonFactory:def get_person(self,p_type):if p_type == 'w':return Worker()elif p_type == 's':return Student()else:return Teacher()pf = PersonFactory()
worker = factory.get_person('w')
stu = factory.get_person('s')
teacher = factory.get_person('t')
"""
使用工厂类的get_person()方法去创建具体的类对象优点:
1.大批量常见对象的时候有统一的入口,容易代码维护
2.当发生修改,仅修改工厂类的创建方法即可
3.符合现实世界的模式,即由工厂来制作产品(对象)
"""
总结:
1.什么是工厂模式
将对象的创建由原生类本身创建
转换到由特定的工厂方法来创建
2.好处
2.1.大批量常见对象的时候有统一的入口,容易代码维护
2.2.当发生修改,仅修改工厂类的创建方法即可
2.3.符合现实世界的模式,即由工厂来制作产品(对象)