抽象クラス Drink と、実行時に作成する Drink の種類 (Wine、Beer など) を選択するファクトリ メソッドがあるとします。
各 Drink は、それ自体を適切に初期化するためにいくつかの引数が必要です。これらのいくつかはすべてのドリンクに共通です。たとえば、それらはすべて DrinkConfig 引数を必要とする場合があります。
ただし、各ドリンクにも独自の要件がある場合があります。おそらく、Wine は自分自身を初期化するために Sommelier ヘルパー オブジェクトを必要とします。Beer はそれを必要としませんが、独自のヘルパー オブジェクトが必要な場合があります。
では、ファクトリ メソッドには何を渡す必要がありますか? これを呼び出すと、すべてのヘルパー オブジェクトが利用可能になるので、それらすべてをファクトリに渡すことができます。しかし、これは多くの議論になる可能性があります。これを設計するより良い方法はありますか?
編集:ファクトリでヘルパー オブジェクトを作成することはできないと仮定しましょう。それらは発信者からのみ利用できます。