ファクトリメソッドのパターンに関する次のクエリを理解するのに役立つ人はいますか?工場と工場の方法のパターンをC#
imはthisリンクをサンプルとして参照しています。
1.ファクトリメソッドパターンの抽象クラスファクトリの必要性は何ですか? 通常のクラスを使用する場合はどうなりますか?
2.コードの変更はクライアントに影響を与えないことが記載されています。しかし、 新しいクラスproduct3が追加された場合は、適切な の変更がクライアントコードでも必要になります(以下のコードに従って)。次に、このデザインパターンの利点は何ですか?
3.Whatは、我々はシンプルなデザインパターンでオープンクローズの原則を実装カント?objFactories[0] = new concreteFactoryforProduct1();
Factory[] objFactories = new Factory[2];
objFactories[0] = new concreteFactoryforProduct1();
objFactories[1] = new concreteFactoryforProduct2();
foreach (Factory objFactory in objFactories)
{
Product objProduct = objFactory.GetProduct();
objProduct.GetDetails();
}
concreteFactoryforProduct1 factory = new concreteFactoryforProduct1();
オーバー
4.Whyの利点ですか
)インスタンスを作成していますが、objFactories [0] = new concreteFactoryforProduct1(); 2)あなたが説明しようとするものを明確にしていない。 3)なぜobjFactories [0]を使用する必要がありますか?なぜ私はクラスインスタンスを使用できませんか?利点は何ですか? –
(1)はい、OKです。あなたは新しいFactory() - >コンストラクタを呼び出していません。ちょうどリファレンスタイプ。 (2)実際には、Factory1で作成されたオブジェクトが必要な場合は、インスタンス(好ましくはSingleton)を作成し、そのメソッドを呼び出すだけです。 (3)ここでは、両方のタイプのコンクリート工場を同じ配列に挿入する方法はありませんか? –
私はあなたのことを理解しました。しかし、あなたはパターンの実装を説明していて、この方法を使う利点を尋ねています。この例では、配列を使用しています。ファクトリ抽象インスタンスに直接割り当てる多くの例を持つことができます。 –