「インターフェイスへのプログラミング」と「new」キーワードの使用を避けるという考え方が気に入っています。
しかし、同じインターフェースを持っていてもセットアップが根本的に異なる 2 つのクラスがある場合はどうすればよいでしょうか。私の特定のコードについて詳しくは説明しませんが、メソッド「DoStuff」とのインターフェースがあります。2 つのクラスがこのインターフェイスを実装します。1つは非常に単純で、初期化を必要としません。もう 1 つの変数には、設定する必要がある 5 つの異なる変数があります。これらを組み合わせると、DoStuff が呼び出されたときにクラスが動作する文字通り何百万もの方法が可能になります。
では、いつこれらのクラスを「新しく」するのでしょうか? 工場を使用することについて考えましたが、セットアップが大きく異なるため、この場合には適していないと思います。(ところで: 実際には、インターフェイスを使用する約 10 の異なるクラスがあり、それぞれが複雑なパイプラインの一部を形成し、それぞれに異なる構成要件があります)。