0

我有一个 Django 应用程序,我需要为不同的输入遵循不同的工作流程。

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

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

例如:-

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

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

我研究了Intellectdjango-viewflow和许多其他业务规则库,但不确定推荐的做法。

如果任何人都可以为我提供一个虚拟示例或一个开源项目,我可以通过它来理解相同的实现,那将会很有帮助。

4

1 回答 1

1

我认为你没有构建一个巨大的应用程序,对吧?

因此,要关注针对不同输入的不同流程的根本需求,您可以创建从 Base 对象扩展的多个对象Processor,例如AppleProcessoror OrangeProcessor。它们都共享相同的接口。

然后在您的后勤部分,您可以创建一个字典,如下所示:

processors = {"Apple": AppleProcessor, "Orange": OrangeProcessor}

然后很容易使用它:

processor = processors.get(input)
processor.process(*some_needed_args, **some_needed_kwargs)
result = processor.get_result()

这只是一个简单的解决方案,如果你有更多的限制,它可能会变得更加复杂。

于 2018-02-12T05:37:02.047 回答