Python进阶知识:整理3 -> 设计模式(单例模式、工厂模式)

1 单例模式

python 复制代码
# 单例模式:确保一个类只有一个实例,并提供一个全局访问点。
class Singleton:
    pass

st = Singleton()


"""
    在其它文件中import, 使用上述类时,无论实例化多少对象,得到对象id都是一样的,相当于实例化一个对象
    ---> 节省内存;节省创建对象的开销
"""

2 工厂模式

python 复制代码
# -- coding: utf-8 --
"""
    当需要大量创建一个类的实例的时候,可以使用工厂模式:
        即从原生的使用类的构造去创建对象的形式,迁移到基于工厂提供的方法去创建对象的形式
"""
"""
    优点: 1.大批量创建对象的时候有统一的入口,易于代码的维护
         2.当发生修改,仅需要修改工厂类的创建方法即可
         3.符合现实世界的模式,即有工厂来制作产品(对象)
"""


class Person:
    pass


class Worker(Person):
    pass


class Student(Person):
    pass


class Teacher(Person):
    pass


class PersonFactory:
    def get_person(self, p_type):
        if p_type == 'worker':
            return Worker()
        elif p_type == 'student':
            return Student()
        elif p_type == 'teacher':
            return Teacher()
        else:
            return None


pf = PersonFactory()
worker = pf.get_person('worker')
student = pf.get_person('student')
teacher = pf.get_person('teacher')

相关推荐
何以解忧,唯有..1 小时前
Pydantic 介绍与使用:Python 数据校验的现代方案
数据库·python·microsoft
又幸福了哥2 小时前
Python入门到高级(知识点七)
python
又幸福了哥2 小时前
Python入门到高级(知识点六)
python
维克兜率天2 小时前
【维克】动量指标家族:RSI、ROC、CCI、Momentum全面解析
python·算法
XZ-0700013 小时前
week2-1-可视化
开发语言·python
Java后端的Ai之路3 小时前
14、Python - 责任链模式
服务器·开发语言·人工智能·python·责任链模式
张人玉4 小时前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
一位正在转型AI全栈的前端工程师4 小时前
AI 全栈学习之旅 -Week 5:RAG 知识库问答系统:从零到生产级部署的全栈实践总结
前端·python
2601_962381864 小时前
Python办公联动:Excel数据一键自动生成PPT图表
python·数据分析·自动化·excel·ppt
东莞市永盛电气4 小时前
三相208V变380V变压器,出海工业设备供电适配方案
python·单片机·嵌入式硬件