OOPでは、パフォーマンスと単体テストに関しては、PHP witchは、ファクトリが新しいインスタンスまたは同じインスタンスを返すようにする方が適切です。
例えば。クラスが使用されるたびに新しいインスタンスを作成することは悪い習慣と見なされますか?
Factoryに同じインスタンスを返させたくありません。新しいインスタンスを返すようにします。それがファクトリーのポイントです。シングルトンはPHPでは役に立ちません。インスタンスを1つのインスタンスのみに制限する場合は、インスタンスを1回作成し、必要な場所に挿入します。
パフォーマンス面では、同じインスタンスを返すか、新しいインスタンスを作成するかは無視できます。つまり、ctorで非常にコストのかかる作業(データベースへの接続など)を行っていない限り、とにかくすべきではありません。
単体テストの場合、ファクトリが同じインスタンスではなく新しいインスタンスを返すようにする必要があります。これは、グローバル状態になるためです。テストは単独で行う必要があり、以前のテストの一部のインスタンスの状態がまだ残っている状態ではない必要があります。これは、エラーが発生しやすいためです。
同じインスタンスを返すことは、シングルトンパターンに最適です。工場は彼らが何を返しているかを気にするべきではありません...それが特定の基準に適合するということだけです。
ファクトリがデータベース接続を返す場合は、新しい接続を作成するのではなく、シングルトン接続を返すのがおそらく最善です。