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 小时前
Go语言设计模式(七)组合模式
设计模式·组合模式
独行soc1 小时前
2025年渗透测试面试题总结-66(题目+回答)
java·网络·python·安全·web安全·adb·渗透测试
Y学院4 小时前
Python 数据分析:从新手到高手的“摸鱼”指南
python·数据分析
深耕AI4 小时前
【PyTorch训练】准确率计算(代码片段拆解)
人工智能·pytorch·python
eqwaak04 小时前
科技信息差(9.12)
开发语言·python·科技·量子计算
Blossom.1185 小时前
从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
数据库·人工智能·python·深度学习·机器学习·计算机视觉·oracle
蒋星熠5 小时前
破壁者指南:内网穿透技术的深度解构与实战方法
网络·数据库·redis·python·websocket·网络协议·udp
shizidushu5 小时前
使用 Pyinstaller 打包 PPOCRLabel
python·pyinstaller
Q_Q19632884756 小时前
python+springboot+uniapp微信小程序题库系统 在线答题 题目分类 错题本管理 学习记录查询系统
spring boot·python·django·uni-app·node.js·php