特定のオブジェクト タイプをインスタンス化するための静的ファクトリ メソッド設計を使用する既存のコード ベースがあります。
public static Something createSomething(int x, int y, .....)
{
// creates a Something object
}
オブジェクトの作成方法を指示する新しいパラメーターに基づいて、別の方法で何かのオブジェクトを初期化できるようにすることで、このメソッドを拡張したいと思います。
最も単純な (そして最もスケーラブルでない) 方法は、ファクトリ メソッドに新しいパラメーターを追加することです。
これは物事を行うための正しい方法のようには見えません:
- 1 つだけでなく、更新する必要がある複数のファクトリ メソッドがあります。
- 新しいメソッドを作成すると、ファクトリを呼び出すクライアント コードの変更が強制されます。この種のものは、オブジェクトを生成する単一の場所を持つという目的を無効にします。
- パラメーターを追加すると、使いにくい長いパラメーター リストが作成されます。
ファクトリメソッドを拡張するためのより良いアプローチはありますか?