当前位置: 首页 > news >正文

python---设计模式(单例模式和工厂模式)

单例模式

定义:保证一个类只有一个实例,并提供一个访问它的全局访问点。节省内存,节省创建对象的开销。

非单例模式 :

class StrTools:
    pass

s1 = StrTools()
s2 = StrTools()
print(s1)
print(s2)

单例模式 :

# tr_tools.py
class StrTools:
    pass

str_tool = StrTools()
# 单例模式.py
from str_tools import str_tool
s1 = str_tool
s2 = str_tool
print(s1)
print(s2)

工厂模式 

定义:将对象的创建由使用原声类本身创建转换为由特定的工厂方法来创建,大量创建一个类的实例--易于维护,当发生修改,修改工厂的创建方法即可
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 == 'w':
           return Worker()
       elif p_type == 's':
           return Student()
       else:
           return Teacher()


pf = PersonFactory()
worker = pf.get_person("w")
stu = pf.get_person("s")
teacher = pf.get_person("t")

http://www.dtcms.com/a/3031.html

相关文章:

  • 【JAVA学习笔记】42 - 内部类(难点,重点)
  • YOLO目标检测——行人数据集【含对应voc、coco和yolo三种格式标签+划分脚本】
  • (ubuntu)安装nginx
  • 【JAVA】:万字长篇带你了解JAVA并发编程【一】
  • Linux网络编程-极简HTTPUDP服务器
  • MySQL数据库(四)
  • 通俗介绍:什么是 Redis ?
  • crossover23.6闪亮登场发布啦,2023最新功能解析
  • jenkins实践篇(1)——基于分支的自动发布
  • UI 自动化测试框架:PO模式+数据驱动
  • Selenium定向爬取海量精美图片及搜索引擎杂谈
  • 【Solidity】智能合约案例——③版权保护合约
  • 【API篇】七、Flink窗口
  • C语言之数组
  • 数据结构和算法概述
  • TOGAF(企业架构)
  • Kotlin笔记(七):协程
  • 医院陪诊系统源码 医院护工陪护系统源码
  • LabVIEW基于机器视觉的钢轨表面缺陷检测系统
  • vue3 官方地址
  • java 获取前一天日期
  • 家政按摩预约小程序app应用场景功能介绍
  • 全国三维数字化创新设计大赛湖北赛区省赛成功举办
  • mac安装jenkins
  • 【Overload游戏引擎细节分析】Lambert材质Shader分析
  • python爬虫入门(五)XPath使用
  • hadoop伪分布式安装部署
  • windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系
  • vue3 computed 和 watch 的差异
  • DALL·E 3怎么用?DALL·E 3如何申请开通 ?DALL·E 3如何免费使用?AI绘画教程来喽~