当前位置: 首页> 财经> 金融 > 株洲新闻网红网株洲站_佛山高明网站建设设计_重庆森林电影_营销策略怎么写范文

株洲新闻网红网株洲站_佛山高明网站建设设计_重庆森林电影_营销策略怎么写范文

时间:2025/7/12 9:04:15来源:https://blog.csdn.net/xuukai/article/details/146001713 浏览次数:0次
株洲新闻网红网株洲站_佛山高明网站建设设计_重庆森林电影_营销策略怎么写范文

工厂函数(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()

后面直接使用即可:

关键字:株洲新闻网红网株洲站_佛山高明网站建设设计_重庆森林电影_营销策略怎么写范文

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: