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

精美旅游网站模板链接推广平台

精美旅游网站模板,链接推广平台,想做网站 优帮云,衡阳网页定制工厂函数(Factory Function)不同于构造函数,工厂函数就是一个普通函数,通常用于创建对象或实例。它的核心思想是通过一个函数来封装对象的创建逻辑,而不是直接使用类的构造函数。工厂函数可以根据输入参数动态地决定创…

工厂函数(Factory Function)不同于构造函数,工厂函数就是一个普通函数,通常用于创建对象或实例。它的核心思想是通过一个函数来封装对象的创建逻辑,而不是直接使用类的构造函数。工厂函数可以根据输入参数动态地决定创建哪种类型的对象,从而提供更高的灵活性和可扩展性。

工厂函数的特点

  1. 封装创建逻辑:工厂函数隐藏了对象的创建细节,使得调用者不需要关心对象是如何被创建的。

  2. 动态创建对象:可以根据输入参数动态决定创建哪种类型的对象。

  3. 不依赖于类的构造函数:工厂函数通常不直接使用 new 关键字,而是通过内部逻辑来创建对象。

  4. 可扩展性强:在不修改现有代码的情况下,可以轻松添加新的对象类型。

工厂函数的用途

工厂函数常用于以下场景:

  • 当对象的创建逻辑复杂时,可以将创建逻辑封装到工厂函数中,使代码更清晰。

  • 当需要根据不同的条件创建不同类型的对象时,工厂函数可以根据输入参数动态选择对象类型。

  • 在某些编程语言中,工厂函数可以用于避免直接使用类的构造函数,从而实现更灵活的设计模式。

举例说明:

在某个项目中有大量的redis,一旦Redis服务器发生了变化,比如改了IP地址,项目的每个地方需要配置特别麻烦。所以,就使用了工厂函数。

在database.py中配置:

REDIS_CONFIG = {"host": getenv("REDIS_HOST", "127.0.0.1"),"port": int(getenv("REDIS_PORT", "6379")),"db": int(getenv("REDIS_DB", "0")),"password": getenv("REDIS_PASSWORD", None),"encoding": "utf8","pool_minsize": int(getenv("REDIS_POOL_MINSIZE", "1")),"pool_maxsize": int(getenv("REDIS_POOL_MAXSIZE", "10")),"timeout": int(getenv("REDIS_TIMEOUT", "5"))
}
def get_redis_client(decode_responses: bool = True) -> redis.Redis:"""获取Redis客户端实例Args:decode_responses: 是否自动解码响应数据为字符串Returns:Redis: Redis客户端实例"""return redis.Redis(host=getenv("REDIS_HOST", "172.23.151.30"),port=int(getenv("REDIS_PORT", "6379")),db=int(getenv("REDIS_DB", "0")),password=getenv("REDIS_PASSWORD", ""),socket_timeout=int(getenv("REDIS_TIMEOUT", "5")),socket_connect_timeout=int(getenv("REDIS_TIMEOUT", "5")),pool_minsize=int(getenv("REDIS_POOL_MINSIZE", "1")),pool_maxsize=int(getenv("REDIS_POOL_MAXSIZE", "10")),decode_responses=decode_responses)

在各个文件中生成redis_client :

from config.database import get_redis_client# Redis 客户端配置
redis_client = get_redis_client(decode_responses=True)

或者类中直接初始化:

from config.database import get_redis_clientdef __init__(self):self.model = RecommendationModel()self.redis_client = get_redis_client()

后面直接使用即可:

http://www.dtcms.com/wzjs/117635.html

相关文章:

  • 广州天河区核酸检测点seo策略主要包括
  • 玮科网站建设营销课程培训
  • 网站页面制作软件seo网站编辑优化招聘
  • html怎么做查询网站高质量关键词搜索排名
  • 如何做亚马逊国外网站前端优化
  • 网站开发工程师怎么样微信营销管理软件
  • 网站开发语音域名查询ip网站
  • 开发邦app温州seo招聘
  • 建设网站主题百度关键词首页排名怎么上
  • 电子产品采购平台宁波seo费用
  • 独立网站开发成人职业技术培训学校
  • 网络 网站建设电商运营培训班多少钱
  • 济南网站改版手机关键词seo排名优化
  • 免费视频网站素材seo外链查询工具
  • 淄博周村专业网站建设公司免费找客源软件
  • 山东莱钢建设有限公司网站深圳靠谱网站建设公司
  • 交互式手机网站央视新闻最新消息今天
  • 新的网站平台如何做地推营销技巧在线完整免费观看
  • 怎样做网站上的语种链接广告策划
  • 微信 分享网站开发软文网站有哪些
  • 西安小程序专业开发公司seochinaz查询
  • 广州学网站开发产品软文是什么意思
  • 班徽logo设计图片seo专员工作内容
  • 局域网聊天工具有哪些北京官网seo
  • wordpress 视频站seo整站优化方案案例
  • 代理记账注册公司图片aso优化注意什么
  • 天津网站建设优化合肥做网站公司哪家好
  • 给网站做优化刷活跃要收费吗手机地图app下载安装
  • 宁波快速制作网站做灰色词seo靠谱
  • 如何做凡客网站免费的关键词优化工具