1

アプリを書き直すためのいくつかのデザインオプションと格闘してきましたが、気に入ったデザインが思いつかないため、うまくいかないようです。私の懸念のほとんどは、サブクラス化の問題に起因しています。基本的に、複数のクラス間で再利用したい側面がいくつかあります。

  • ユーザー インターフェイスの「ルック アンド フィール」
  • ユーザー インターフェイスの動作 (ダイアログ、アクティビティ インジケーター、ナビゲーション)
  • ネットワーク インターフェイス (Three20 のようなものModelViewController、、、loadなどmore)
  • 状態駆動型の動作 (到達可能性、ログイン ステータス、通知などの変更)

Obj-C は多重継承をサポートしていないため、 のようなことはできませんMyViewController : StandardUILookNFeelViewController, NetworkEnabledViewController。Java でインターフェイスを使用するのと同じ方法でプロトコルを使用できることはわかっていますが、ルック アンド フィール、ネットワークの動作、状態駆動型の動作をサブクラス化する必要があるのか​​、それともすべてを 1 つにまとめる必要があるのか​​はわかりません。クラス。

あなたの経験では、 を使用してBaseViewControllerルック アンド フィールを処理しますか? ネットワークを処理するために使用しますか? 動作を処理するために使用しますか? これらすべてを 1 つのクラスにまとめますか? のような大規模なクラス階層three20がありますか、それとも私が見逃しているより賢い解決策がありますか?

4

1 に答える 1

0

「便利だから」という理由で、人々はビュー コントローラに機能をひとまとめにする傾向があります。しかし、定義上、複数の責任を処理する単一のクラスは、単一責任の原則に違反しています。

これは、可読性、保守性、およびテスト容易性にとって重要です。再利用したい場合は、それが不可欠です。

以下を読むことをお勧めします。

于 2012-06-08T17:15:55.100 に答える