工厂模式+反射实现可扩展性
为什么在开发过程中我们需要实现可扩展性
-
在实际开发过程中,如果我们的代码可扩展性很低,那么在我们需要添加新功能时,就需要频繁的改动我们的源代码,这样既会导致工作量的增加,又会让程序的稳定性收到影响,一旦我们不小心改错了,就会导致一系列的bug
-
实现可扩展性,需要我们利用配置文件以及工厂模式和反射。
-
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替
类名()操作的一种模式。在python的django框架中 ,就大量使用了工厂模式,工厂模式在Python程序系统可以说是随处可见。这样会给你系统带来更大的可扩展性和尽量少的修改量。
目录结构

music\shopping\washing.py 三个类只是类名的不同
class Washing(object):
def __init__(self, name):
self.name = name
def func(self):
print(self.name + '正在洗碗')
manage.py
import importlib
from settings import APPS_PATH_INFO
def run():
for item in APPS_PATH_INFO:
model_name, class_name = item.rsplit('.', maxsplit=1)
model = importlib.import_module(model_name)
cls = getattr(model, class_name)
obj = cls('lucas')
obj.func()
if __name__ == '__main__':
run()
settings.py
APPS_PATH_INFO = [
'apps.music.Music',
'apps.shopping.Shopping',
'apps.washing.Washing',
]
执行结果

- 每次我们需要新增APP时,只需要在apps里面加上对应的py文件,然后在里面写上自己的逻辑,然后在配置文件配置好,不用更改manage.py里面的内容。这样我们就实现了一个简单的可扩展性的工厂模式

浙公网安备 33010602011771号