2016-09-10 1 views
1

Ich versuche, zwei Typen von Dialogs in meiner Android Anwendung (Java) zu implementieren, abhängig von der Bildschirmgröße des Geräts.Basisklasse für Dialoge in Android

Also, wenn Gerät Bildschirmbreite ist weniger, dann ein Wert, dann möchte ich BottomSheetDialogFragment zeigen. Und wenn es mehr ist, möchte ich einfach DialogFragment zeigen. Ich habe Logik für BottomSheetDialogFragment geschrieben und verstehe jetzt, dass einige Code in DialogFragment dupliziert werden.

Gibt es eine Möglichkeit, die Anzahl der doppelten Code in einer solchen Situation zu reduzieren? Ist es beispielsweise möglich, eine Basisklasse für diese Dialoge zu erstellen?

Antwort

2

Ich würde vorschlagen, eine Art von facade pattern für eine Situation wie diese.

Damit würden Sie eine gemeinsame Fassade für beide Dialogtypen erstellen (oder für noch mehr, wenn Sie später brauchen), so dass Sie dort die gemeinsame Logik implementieren können.

Die Fassade könnte eine createBottomSheetDialogFragment und eine createDialogFragment Methode haben, und beide rufen eine innere Methode für die gemeinsame Logik auf.

Oder Sie könnten die Logik implementieren, die entscheidet, welcher Dialog für die aktuelle Situation innerhalb Ihrer eigenen Klasse passt, und entscheiden, welchen Dialog Sie benötigen.

+0

Danke :) Das ist die Sache, die ich gesucht habe. – dbulgakov