同じコードを共有する 2 つの製品ラインに取り組んでいます。
異なる機能については、両方の製品ラインで同じインターフェイス (場合によっては基本クラス) を実装し、これらの型を Main クラス (両方の製品ラインで別々) で作成し、さらに下流に渡します。
ビジネス ロジックの奥深くにあるコードの場合、製品ライン固有のコードを作成するのは非常に困難です。if(ProductLine == "ProductLine1") および else 方法論は使用したくありません。
そこで、NewObject1()、NewObject2() などを返す静的メソッドを持つ Factory クラスを実装することを計画しています。この Factory クラスは、Main クラスに Factory.RegisterClient(ProductLine1) として登録されます。
したがって、上記のアプローチでは、ファクトリ (内部に ProductLine1Factor と ProductLine2Factory を含む) は、作成するオブジェクトのタイプを認識します。
この問題に対するより良いアプローチを知っていますか。ProductLine1 はすでに存在し、ProductLine2 は新しいものであることに注意してください (ただし、ProductLine1 と 90% 類似しています)。両方の製品ラインが存在するような抜本的なリファクタリングはできません。コードの変更はできるだけ最小限に抑えたいと考えています。
通常、ファクトリ アプローチはインターフェイスを公開しますが、インターフェイスの問題は、必要な静的型を公開できないことです。
一部の専門家が光を当てることができれば、本当に感謝しています。