处理相同活动的不同实现。我应该创建不同的活动吗?

时间:2015-02-07 14:47:36

标签: android design-patterns android-activity android-manifest

我正在尝试找出一个好的做法来处理这个案例,当某个特定活动在智能手机上启动时逻辑A 而在平板电脑上启动时逻辑B (但是可能有无数的例子,根据某些条件可能会有不同的逻辑)。

我不太喜欢在清单中注册一个唯一活动然后处理其中的不同实现的解决方案,主要是因为我认为代码,无论你如何处理不同的情况,变得相当不可读:

  • 如果您使用 if-then-else 解决方案(没办法!),活动很容易变得庞大,并且像Boogeyman一样可怕
  • 如果您将实施细节委托给某些外部类,有时您可能最终会从不同的文件中跳转,并且跟踪流程并不容易。然而,这是比if-then-else场景更好的解决方案(imho)。

因此我想知道:在清单中注册所有不同的实现会更有意义吗?

<activity android:name=".activity.ActivitySmartphoneImpl" />
<activity android:name=".activity.ActivityTabletImpl" />

或者出于某种特殊原因这是不好的做法?

在清单中注册未使用的活动是不是一件坏事?

0 个答案:

没有答案