2016-09-15 3 views
1

Angenommen, ich habe zwei Viewcontroller. Auf dem ersten Viewcontroller muss ich eine von N Optionen auswählen und abhängig von dieser Option hat der zweite Viewcontroller ein anderes Verhalten. In der Praxis kann ich die gleichen Methoden aufrufen, aber mit unterschiedlichen Implementierungen, aber ich möchte kein Argument (enum) übergeben, das den aktuellen Modus des Viewcontrollers in jeder Methode beschreibt oder jedes Mal einen Switch ausführt. Was ist die relevanteste Designlösung für diesen Fall?ViewController mit mehreren Verhaltensmodellen

Antwort

0

Sie sollten Vererbung verwenden. Schreiben Sie eine Basisklasse und überschreiben Sie die Basismethode, um sie an jeden untergeordneten Controller anzupassen.

2

Es hängt von Ihrem Wert von N (Optionen auf der ersten Ansicht Controller) und wie viel die voneinander unterscheiden.

Wenn N kleiner ist und sich voneinander unterscheiden, sollten Sie separate View-Controller für Ihren zweiten Bildschirm haben. Sie können Vererbung verwenden, wenn Unterschiede nicht viel sind.

Wenn N groß ist, sollten Sie Ihre N-Option kategorisieren und einen Controller für jede Kategorie haben, und Sie können enums/flags für die Anpassung in einer Kategorie verwenden.

Verwandte Themen