あるオブジェクトが受信した通話を他のオブジェクトに転送するために、複合パターンを使用したいと思います。
現在、受信側のオブジェクトはすべて同じAbstract
タイプですが、具体的なタイプに応じて、パラメーターとしてさまざまなタイプのオブジェクトを選択的に受け入れるという問題があります(さまざまなモデルを考えてください)。
私が見る限り、2つの解決策がありますが、どちらも満足のいくものではありません。
- instanceofを使用して、入力側のクラスタイプオブジェクトを検出します。これはよく悪い習慣だと言われます。
Lists
入力タイプと同じ数を作成します。これにより、List
新しい入力タイプに対応するためにaを追加する必要があり、それぞれList
を明示的に順番に処理する必要があるという問題が発生します。
私はインターフェースの観点から考えてきましたが、まだ実現可能なアイデアを思い付いていません。この設計上の問題の解決策は何でしょうか?コンポジットはまったく適切ですか?
PS:これはMVCのコンテキストにあります。