Android 中的对话框基础 class

Base class for Dialogs in Android

我正在尝试在我的 Android 应用程序 (Java) 中实现两种类型的 Dialogs,具体取决于设备屏幕尺寸。

因此,如果设备屏幕宽度小于某个值,那么我想显示 BottomSheetDialogFragment。如果更多,我想显示简单 DialogFragment。我已经为 BottomSheetDialogFragment 编写了逻辑,现在明白某些代码将在 DialogFragment 中重复。

那么在这种情况下有什么办法可以减少重复代码的数量吗? 例如,是否可以为这些对话框创建一些基础 class?

对于这种情况,我会提出某种 facade pattern 的建议。

这样您就可以为两种对话框类型创建一个通用外观(如果您以后需要,甚至可以创建更多外观),这样您就可以在那里实现通用逻辑。

外观可以有一个 createBottomSheetDialogFragment 和一个 createDialogFragment 方法,并且都为公共逻辑调用一个内部方法。

或者您可以在自己的 class 中实施决定哪个对话适合当前情况的逻辑,并决定您需要哪个对话。