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

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.kler.cn/a/106452.html

相关文章:

  • WebChromeClient 方法分类及其功能
  • Python教程笔记(2)
  • sql注入之二次注入(sqlilabs-less24)
  • Node.js GET/POST请求、WEB模块使用介绍 (基础介绍 八)
  • 领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐
  • 电子工牌独立双通道定向拾音方案(有视频演示)
  • HCL模拟器选路实验案例
  • Linux系统之file命令的基本使用
  • 在3分钟内使用AI-Chat生成精美PPT(附AI工具)
  • 10个Golang 数据库最佳实践
  • Android 13.0 SystemUI状态栏屏蔽掉通知栏不显示通知
  • 【登录安全测试】
  • 【进程概念③】:进程环境变量/进程切换
  • TensorFlow2从磁盘读取图片数据集的示例(tf.data.Dataset.list_files)
  • Python学习笔记第七十二天(Matplotlib imread)
  • 广西厂家直销建筑模板,工程用木工板,多层胶合板批发
  • 使用Intersection Observer API 检测元素是否出现在可视窗口
  • RK3568-pcie接口
  • LuatOS-SOC接口文档(air780E)--mcu - 封装mcu一些特殊操作
  • 如何在外网访问内网服务器数据库
  • 高通Quick Charge快速充电原理分析
  • Vue项目搭建及使用vue-cli创建项目、创建登录页面、与后台进行交互,以及安装和使用axios、qs和vue-axios
  • 在Linux中,可以使用以下命令来查看进程
  • tqdm 显示进度条模块
  • Echarts 实现 设备运行状态图(甘特图) 工业大数据展示
  • C++实现线程池