0

私はコンセプトと混同していますか?コンストラクタの代わりにオブジェクトを返す静的メソッドを組み込むのと同じくらい簡単ですか?そのため、クライアントがライブラリを更新している間にコードを変更する必要はありませんか、それ以上のことがありますか?ファクトリー・メソッド・メソッドのパターンを正確には何が記述できますか?

+0

いくつかのコード例を書いて、もっと詳しく説明できますか? –

+0

答えは、 'new X()'を実行すると、具体的なクラス 'X'のインスタンスが確実に得られます。ファクトリメソッド 'X.newInstance()'は実装の自由度があり、 'X'のサブクラスを作成します。例えば'public X newInstance(){if(return(Environment.isDebug())?new DebuggingX():new X())' - しかし、どこでもパターンが議論されています。 https://en.wikipedia.org/wiki/Factory_method_patternまたはOOパターンに関する書籍。 – slim

答えて

0

書籍Head First Design Patternsは、Javaのための明確なガイドになります。それは素晴らしい本です。私の答えがStack Overflow Questionであることを確認したらArbitraryPointFactoryクラスの実装がFactory Method patternを使用するPoint Exampleコードと、Point Factoryクラスに表示されているAbstract Factory patternとどのように異なるのかを確認することができます。この答えはC#のコードサンプルで示されていますが、使用法を説明するために使用しているデザインパターン言語は、あなたに答えを保証するものです。

あなたの質問で考えているのは、まったくデザインパターンではありません。インスタンス化をカプセル化するオブジェクトを返すこの静的メソッドは、Wikiページに表示されるようにSimple Factoryとして知られています。 Factory Methodパターンは、インタフェースを介して返される型をある程度抽象化します。これは通常、factory methodクラスの唯一の仕事が、返されるインターフェイスを実装する1つのconcreteクラスのオブジェクトの作成を制御することで行われます。 Abstract Factoryは、関連製品のグループのカプセル化を提供します。私の例では、さまざまなタイプのポイントを表示していましたが、異なるインターフェイスを実装でき、すべて同じものを使用しますAbstract Factory

アイデアは、実装ではなくインターフェイスにプログラミングすることです。真のファクトリは、アプリケーション内の単一の場所に作成ロジックを引き込み、インターフェイスを介してインスタンス化をカプセル化します。

関連する問題