これは正当な工場であるかどうかわかりません。だから、基本的には対象となる工場をチェックするための条件は、呼び出し元のコードに右であるC#ファクトリを作成する
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つのメソッドを呼び出す必要があるという事実だけです。
は、これは完全に罰金鳴り、GoFの –