python工厂方法的应用场景

python工厂方法的应用场景
python工厂方法的应用场景

1、说明

(1)将代码与动态配置对象结构器的细节分开。

(2)可通过配置文件的内容在运行过程中动态创建实例对象。

(3)工厂方法允许我们使用未定义的类别来避免硬代码的导入和传输。

2、实例

## fa.py
def factory(aClass,*pargs,**kwargs):    ## aClass 具体是什么类不清楚,只有在运行的时候才知道
    return aClass(pargs,kwargs)
 
## run-fa.py
"""
现在有一个配置文件setting.py,主要是用作配置数据库的一系列参数,其中需要指定一个类是表明使用哪种数据库,如MySQL、Oracle...
假设在一个db.py定义了实现不同的数据库对应的类模板
"""
 
import setting.py                  ## 读取配置文件
 
classargs = setting_db_config      ## 获取实例化连接对象的数据库配置参数,uri,port,username,password
 
classname = setting_db_class       ## 获取类名称的字符串
 
aClass = getattr(db,classname)     ## 从模块中获取类对象
 
connection = factory(aClass,classargs)  ## 传递参数创建类实例对象

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注