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

单例模式

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

非单例模式 :

python 复制代码
class StrTools:
    pass

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

单例模式 :

python 复制代码
# tr_tools.py
class StrTools:
    pass

str_tool = StrTools()
python 复制代码
# 单例模式.py
from str_tools import str_tool
s1 = str_tool
s2 = str_tool
print(s1)
print(s2)

工厂模式

复制代码
定义:将对象的创建由使用原声类本身创建转换为由特定的工厂方法来创建,大量创建一个类的实例--易于维护,当发生修改,修改工厂的创建方法即可
python 复制代码
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")
相关推荐
web3.088899920 小时前
震坤行商品详情数据接口可以用于获取商品详情信息
python·计算机网络
Salt_072820 小时前
DAY32 类的定义和方法
开发语言·python·算法·机器学习
Nick_zcy20 小时前
新能源汽车推荐系统分享
爬虫·python·汽车·推荐算法
未来影子21 小时前
Java领域构建Agent新杀入一匹黑马(agentscope-java)
java·开发语言·python
管理大亨21 小时前
ELK的操作应用
开发语言·python·elk
倔强青铜三21 小时前
Django 6.0来袭!这些新特性,真的令人振奋!
人工智能·python·django
越甲八千21 小时前
ASGI和AWSIG区别
数据库·python·sqlite
Logic10121 小时前
一份系统化《Python爬虫教程》学习笔记:Python爬虫63个核心案例精讲(含反爬策略与源码剖析)
经验分享·爬虫·python·学习笔记·编程·软件开发
拉姆哥的小屋21 小时前
从原子到性能:机器学习如何重塑双金属催化剂的设计范式
人工智能·python·算法·机器学习