アプリを書き直すためのいくつかのデザインオプションと格闘してきましたが、気に入ったデザインが思いつかないため、うまくいかないようです。私の懸念のほとんどは、サブクラス化の問題に起因しています。基本的に、複数のクラス間で再利用したい側面がいくつかあります。
- ユーザー インターフェイスの「ルック アンド フィール」
- ユーザー インターフェイスの動作 (ダイアログ、アクティビティ インジケーター、ナビゲーション)
- ネットワーク インターフェイス (Three20 のようなもの
ModelViewController
、、、load
などmore
) - 状態駆動型の動作 (到達可能性、ログイン ステータス、通知などの変更)
Obj-C は多重継承をサポートしていないため、 のようなことはできませんMyViewController : StandardUILookNFeelViewController, NetworkEnabledViewController
。Java でインターフェイスを使用するのと同じ方法でプロトコルを使用できることはわかっていますが、ルック アンド フィール、ネットワークの動作、状態駆動型の動作をサブクラス化する必要があるのか、それともすべてを 1 つにまとめる必要があるのかはわかりません。クラス。
あなたの経験では、 を使用してBaseViewController
ルック アンド フィールを処理しますか? ネットワークを処理するために使用しますか? 動作を処理するために使用しますか? これらすべてを 1 つのクラスにまとめますか? のような大規模なクラス階層three20
がありますか、それとも私が見逃しているより賢い解決策がありますか?