2016-09-15 10 views
1

私は2つのビューコントローラがあると仮定します。最初のviewcontrollerでは、Nオプションの1つを選択する必要があり、このオプションに応じて、2番目のviewcontrollerは異なる動作をします。実際には、同じメソッドを呼び出すことはできますが、実装方法は異なりますが、毎回のメソッドや現在のモードでviewcontrollerの現在のモードを記述する引数(enum)を渡す必要はありません。このケースで最も適切な設計ソリューションは何ですか?いくつかの動作モデルを持つViewController

答えて

0

継承を使用する必要があります。基本クラスを作成し、それぞれの子コントローラに合わせてベースメソッドをオーバーライドします。

2

Nの値(最初のビューコントローラーのオプション)と、どのくらいの違いがあるかによって異なります。

Nが小さい場合は、お互いに異なる場合は、2番目の画面用に別のビューコントローラを用意する必要があります。相違があまりない場合、継承を使用できます。

Nが大きい場合は、Nオプションを分類し、カテゴリごとにコントローラを用意し、カテゴリ内でカスタマイズするためにenums/flagsを使用する必要があります。

関連する問題