私は抽象的な "FriendEvent"モデルを持っているとします。これにはいくつかの具体的な実装があります。 (FriendUploadPhotoにはサムネイルが含まれている必要があります)など、視覚的に区別できるように、FriendEventsのすべてのビューでレンダリングする必要があります。多態性ビューのパターン
これを達成するためのオブジェクト指向の良いパターンは何ですか?
ビューコードのモデルの具体的なクラスを切り替える方法があるかどうかを知りたいと思っています。それは何らかの形で間違っていると感じます。なぜなら、多形性に頼ることが可能でなければならないと信じている条件付きロジックが使われているからです。これに対処する確立されたパターンはありますか?明確にするために
(それが責任を混合されるので、私は明らかに、モデル内のビューロジックを実装したくない、と私はモデルごとに異なる見解を持ってしたいことがあるため)
:どのようにモデルレイヤーで異なるイベントタイプをモデル化することは問題ではありません。いくつかのよく知られているOOソリューションがあります。問題は、視覚的にモデルを提示する役割を果たすビューコードに関係します。イベント(モデル)の表示を扱うEventViewクラスがあると思います。問題は、イベントの具体的なタイプに応じて別のコードパスを選択するスイッチブロックを使用せずにこのクラスを実装する方法です。
継承を使用したいと思うような音です。すべての共通プロパティを持つ基本クラスを用意して、具体的な実装を基本クラスから継承させます。 –
@エヴァン明らかに、私は多相を達成するためにモデルレイヤーで継承を使用しています。質問はビューコードに関するものです。 – KaptajnKold
タスクステートメントが少なすぎます。クラスの責任と協力者は何ですか?最も単純なケースでは、EventTypeクラスを参照する単一のEventクラスのインスタンスである可能性があります。 –