したがって、これが合法的な工場であるかどうかはわかりません。私が目にするほとんどの工場では、クライアントに次のようなものがあります。
if(//something)
factory = new Type1Factory();
else
factory = new RegularFactory();
そして、次のようにしてオブジェクトを作成しますfactory.Create();
したがって、基本的に、必要なファクトリを確認する条件は、呼び出しコードにあります。私はそれを隠して、工場自体に状態を持たせたいと思いますが、それはもはや工場とは呼ばれないのでしょうか?
このようなもの:
DateScheduleRequest request = new DateScheduleRequest();
DateScheduleBuilder dateScheduleBuilder = new DateScheduleBuilderFactory(request).Create();
dateScheduleBuilder
オブジェクトは基本的に、ファクトリ コンストラクタに送信されたリクエストに応じて特定のタイプになります。
これには別のパターンがありますか、それとも工場を行うための特定の方法ですか?
基本的にDateScheduleBuilder
は、他のタイプのビルダーが継承する親クラスになりますが、私の呼び出しコードは、この抽象クラスが 1 つのメソッドを持っていることを認識しており、リクエスト タイプを認識する必要はありません。それをファクトリに渡し、1 つのメソッドを呼び出す必要があります。