質問: new list(); } add(string s){ list.add(s); } }
回答: no.1です。 >1aaaは呼び出し元クラスのifの立ち位置として、実処理を置きたくなかった。 その設計は良いと思います。 さらに言えばaaaは「実処理は同実装されているか」も知らなくて 2本来ccc以外にdddなどがあり、bbbでどのインスタンス生成を行うかなどの分岐があります。1の都合により、bbbを連携用として作っています。 ああ、じゃ、bbbはmediatorの役割なのですね。 aaaは実際に使われているのはcccなのかdddなのかわからないという理解でいいでしょうか? であれば、なおのことcccのメンバーデストラクトはbbbの役割で、 aaaから直接cccをコントロールすべきでないと思います。 aaa.clear()は単純にbbb.clear()を呼んで、 実際は何をすればいいのかはbbbに任せるように設計すべきかと思います。