假设我们有两个用户角色:
现在,我需要允许用户创建角色为writer
的帖子。 Reader
角色只能读取并标记为已读。它们具有几乎相同逻辑的相同入口点。但是如何根据用户角色区分逻辑?
我认为再创建一个活动将导致代码重复。但是if/else
的使用也会使其变得复杂
在单个应用程序中处理不同用户角色的最佳实践是什么?
答案 0 :(得分:2)
我认为,我建议进行另一项活动。
在各处使用if / else逻辑确实会使您的代码更加混乱和复杂。例如,如果您突然不得不引入像“编辑器”这样的新角色,这还会使您的代码更加麻烦,并且将来很难更改。遍历所有代码并为所有受影响的方法修改if / else逻辑以包含新角色是很愚蠢的。
最好创建一个新的Activity。但是,这并不意味着会有代码重复。请记住,“作家”和“读者”实际上共享许多代码。
我不了解您的具体情况,但我认为“作家”具有“读者”的所有功能,但还有更多功能。
因此,您可以为'Reader'创建一个Activity,然后为'Writer'扩展该Activity,并在此WriterActivity中仅包含特定于'Writer'的代码。
或者,您始终可以自由地创建仅具有'Writer'和'Reader'共同特征的基础Activity,然后创建从该基础扩展的ReaderActivity或WriterActivity。
基本上,我建议使用另一个Activity,而您不必担心会有额外的Activity导致代码重复。这主要是因为Java中继承概念的部分原因是为了避免代码重复并减少冗余。