Day17-Python基础学习之设计模式

设计模式

单例模式

某些场景下,我们需要一个类无论获取多少次类对象,都仅仅提供一个具体的实例,用以节约创建对象的开销和内存开销

# 单例模式
class StrTools:
    pass
​
s1 = StrTools()
s2 = StrTools()
# 这里是两个独立对象
print(s1)
print(s2)
​
# 引入在另一个文件中的已创建的对象
from class_24 import str_tools
s1 = str_tools
s2 = str_tools
# 两者一致
print(s1)
print(s2)
# 单例模式
class StrTools:
    pass
​
str_tools = StrTools()

工厂模式

用于大批量创建对象的时候有统一的入口,易于代码维护,当发生修改时,仅仅修改工厂类的创建方法即可

# 工厂模式
class Person:
    pass
​
class Worker(Person):
    pass
​
class Student(Person):
    pass
​
class Teacher(Person):
    pass
​
# 产生Person的工厂
class Factory:
    def get_person(self, p_type):
        if p_type == 'w':
            return Worker()
        elif p_type == 's':
            return Student()
        else:
            return Teacher()
        
f = Factory()
worker = f.get_person('w')
student = f.get_person('s')
teacher = f.get_person('t')

相关推荐

  1. Day17-Python基础学习设计模式

    2024-04-23 23:18:03       15 阅读
  2. Day19-Python基础学习Socket

    2024-04-23 23:18:03       17 阅读
  3. Day15-Python基础学习PySpark

    2024-04-23 23:18:03       9 阅读
  4. Python基础学习os模块

    2024-04-23 23:18:03       14 阅读
  5. Python基础学习sys模块

    2024-04-23 23:18:03       14 阅读
  6. Python基础学习time模块

    2024-04-23 23:18:03       12 阅读
  7. Python基础学习datetime模块

    2024-04-23 23:18:03       11 阅读
  8. Python基础学习(11)常用模块

    2024-04-23 23:18:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 23:18:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 23:18:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 23:18:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 23:18:03       20 阅读

热门阅读

  1. 【配置】私人笔记Jopin安装

    2024-04-23 23:18:03       47 阅读
  2. 外包是一种什么体验?

    2024-04-23 23:18:03       15 阅读
  3. 使用nacos的好处

    2024-04-23 23:18:03       15 阅读
  4. 无人机飞行特点

    2024-04-23 23:18:03       14 阅读
  5. MySQL 服务器权限与对象权限

    2024-04-23 23:18:03       15 阅读
  6. Vue中的 keep-alive 实现原理

    2024-04-23 23:18:03       47 阅读
  7. Makefile学习笔记

    2024-04-23 23:18:03       14 阅读