[英]Separating Business Workflow from Django Application
我有一个Django应用,需要在其中遵循不同的工作流程以进行不同的输入。
我在POST
端点上收到带有数据有效负载的输入参数。 根据输入,我需要触发不同的功能,相应地处理数据,最后将其保存在数据存储中。
一种选择是编写if-else
,但是随着代码的增长,编写if-else
很难维护。
例如:
If input1, then function1(), process1(), save1()
elif input2, then function2(), process2(), save2()
我已经研究过Intellect , django-viewflow和许多其他业务规则库,但是不确定推荐的方法。
如果有人可以为我提供一个虚拟的例子或一个开放源代码的项目,我可以通过它理解其实现,那将很有帮助。
我认为您不是在构建庞大的应用程序,对吗?
因此,要专注于根要求,即针对不同输入的不同过程,可以创建从基础对象Processor
扩展的多个对象,例如AppleProcessor
或OrangeProcessor
。 它们都共享相同的接口。
然后在您的后勤部分,您可以创建一个类似于以下内容的字典:
processors = {"Apple": AppleProcessor, "Orange": OrangeProcessor}
然后很容易使用它:
processor = processors.get(input)
processor.process(*some_needed_args, **some_needed_kwargs)
result = processor.get_result()
这只是一个简单的解决方案,如果您有更多的限制,它可能会变得更加复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.