工厂模式介绍
简单理解:工厂模式依然是一种创建型设计模式,作为工厂,它所关心的是产品的产生,也就是对象的创建,我们利用工厂来创建对象,而不必我们亲自创建对象,我们无需去理解如何创建对象,只需要向工厂提出要求,让工厂去根据你的要求,给你生产你要的产品,给你相应的对象,这种模式便叫做工厂模式。
- 工厂模式优点:
松耦合,对象的创建独立于类的实现
客户端无需了解创建对象的类,只需知道需要传递的接口,方法和参数就能够创建所需要的对象
很容易扩展工厂添加其他类型对象的创建,而使用者只需要改变参数就可以了
- 工厂模式缺点:
增删对象的时候。需要手动去修改
- 工厂方法的使用场景:
当系统中拥有的子类很多,并且以后可能还需要不断拓展增加不同的子类时。 当设计系统时,还不能明确具体有哪些类时。
在工厂方法中,使用者不需要知道具体的产品类名,只需要知道其对应的工厂即可。
在flask项目中,配置信息的使用方式demo
工厂模式:
1.定义工厂函数,封装创建程序实例的代码
2.定义函数的参数,可以根据参数的不同创建不同的app
demo_run.py
from flask import Flask
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config_name)
return app
from set import DefaultConfig,ProductionConfig
app = create_app(DefaultConfig)
#app = create_app(ProductionConfig)
@app.route('/')
def index():
print(app.config.get('MYSQL_URL'))
return "hello 嘴里动的是ju"
if __name__ == '__main__':
app.run()
set.py
# 封装型好,可用性强
# 不安全
# 测试模式
class DefaultConfig(object):
MYSQL_URL = 'mysql address'
# 生产模式
class ProductionConfig(DefaultConfig):
MYSQL_URL = 'production mysql address'