2

そのような構造の正しい定義について疑問に思っています:

class A {
 public static A create() {
    return new A();
 }

 private A() {
 }
}

有効な Java (アイテム 1) とウィキペディアの記事で、これはStatic Factory Method (ある種のFactory Method )と呼ばれていることがわかりました。

しかし、パターンへのリファクタリング(第 6 章) を読んでいるときに、 Creation Methodと呼ばれる同じ構造に出会いました。また、 Factory Methodのパターンでごちゃごちゃしてはいけないという注意点があります。

真実はどこにある?

4

4 に答える 4

2

ファクトリメソッドのこの説明を読んでください。

FactoryMethodPatternは、 FactoryMethodまたはCreationMethodとは異なります。

于 2009-04-06T12:29:34.430 に答える
1

1つのアプローチは、パラメーターなしのメソッド作成メソッドを呼び出し、パラメーター化された(たとえば、列挙型によって)ファクトリメソッドを呼び出すことです。ファクトリーはより強力であり、さまざまなタイプのオブジェクトを作成できるという意味で。

パラメータなしのメソッドを使用する場合は、呼び出すクラスのメソッドを他の場所で決定する必要があります。パラメータ化されたメソッドを使用して、このロジックをメソッド自体に渡します。したがって、後者(ファクトリ)も、作成するクラスオブジェクトを自分で決定します。

于 2009-04-06T12:25:51.303 に答える
1

Creation Method は、クラスのインスタンスを作成する静的または非静的メソッドです。ファクトリ メソッドは、クラス階層で定義および実装されるメソッドであり、作成は多態的な性質のものです。

于 2012-01-29T12:59:00.987 に答える
0

ええと、用語は作者によって異なることが多いので、私はこれについてあまり心配しません。

ただし、ファクトリメソッドパターンがあるため、「パターンへのリファクタリング」はこれを「ファクトリメソッド」と呼ぶことに対して警告していると思います。ファクトリメソッドパターンは単なるファクトリメソッドではないため、混乱を避けるために別の名前を提案します。

「単純な静的ファクトリ」と呼ぶこともできると思いますが、それは少し言葉遣いです(そして非標準です)。

于 2009-04-06T12:29:18.080 に答える