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')

相关推荐
xsc6996751 小时前
从零搭建大模型与智能体平台 - 完整技术详解
python
无风听海2 小时前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
CTA终结者3 小时前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
马士兵教育3 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
KaMeidebaby3 小时前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6183 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
天佑木枫4 小时前
15天Python入门系列 · 序
开发语言·python
happylifetree4 小时前
Python017-第二章15.数据容器-dict常用操作
python
装不满的克莱因瓶4 小时前
了解 LangChain 中的 LLM 与 ChatModel 的差异
人工智能·python·ai·langchain·llm·agent·chatmodel
IT知识分享5 小时前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python