繁体   English   中英

将业务工作流与Django应用程序分开

[英]Separating Business Workflow from Django Application

我有一个Django应用,需要在其中遵循不同的工作流程以进行不同的输入。

我在POST端点上收到带有数据有效负载的输入参数。 根据输入,我需要触发不同的功能,相应地处理数据,最后将其保存在数据存储中。

一种选择是编写if-else ,但是随着代码的增长,编写if-else很难维护。

例如:

If input1, then function1(), process1(), save1()

elif input2, then function2(), process2(), save2()

我已经研究过Intellectdjango-viewflow和许多其他业务规则库,但是不确定推荐的方法。

如果有人可以为我提供一个虚拟的例子或一个开放源代码的项目,我可以通过它理解其实现,那将很有帮助。

我认为您不是在构建庞大的应用程序,对吗?

因此,要专注于根要求,即针对不同输入的不同过程,可以创建从基础对象Processor扩展的多个对象,例如AppleProcessorOrangeProcessor 它们都共享相同的接口。

然后在您的后勤部分,您可以创建一个类似于以下内容的字典:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM