標準ファクトリメソッド設計パターンは4つのクラスを話します。 Creator、Product n具体的な実装。JavaのInetAddressクラスの静的メソッドgetBynameは、Factoryメソッドパターンの例ですか?
したがって、製品ごとに、製品を作成するメソッドを持つ対応するファクトリをインスタンス化する必要があります。
しかし、人々がコンストラクタをプライベートとして宣言し、同じクラスのオブジェクトを作成する静的メソッドを持つシナリオも見てきました。シングルトンで何をするのと同じようなものです。
たとえば、getBynameは、パラメータの内容に応じてサブクラスの1つを返す静的メソッドInetAddressの1つです。 と人々はそれをファクトリメソッドと呼びます。
これもファクトリメソッドパターンの例ですか? パラメータまたはswitch文をデコードするメソッド内にif-else-ifが含まれていますか? スイッチの条件文を使用すると、OO設計の習慣が悪いと思われますか?
しかし、私が見たところでは、ファクトリメソッドのパターンをすべてのUMLダイアグラムで説明すると、静的メソッドではなく、別のファクトリクラスに責任が委譲されます。 このスタイルには特定の名前がありますか? http://www.oodesign.com/factory-method-pattern.html –
具体的な名前はないと思います。 http://en.wikipedia.org/wiki/Factory_method_patternには、サブクラスを返さないstaticファクトリメソッドを使用する例(Complex)が示されています。 –