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) ## 传递参数创建类实例对象
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试