1

オートローダー関数(spl_autoload_registerを使用)を使用する場合、もう必要ですか?

  • シングルトン:データベース、ログ、r&r、フロントなど、必要なすべてのクラスがオートローダーによってロードされるため、「常にオン」などのオブジェクトの必要性は私にはわかりません。
  • ファクトリ:繰り返しになりますが、オートローダーは必要なクラスをロードするため、ファクトリクラスを使用して、インターフェイスを実装するワーカークラスをインスタンス化するか、抽象クラスを拡張する必要があります。
4

1 に答える 1

1

シングルトンは、特定のクラスの単一のインスタンスを保持するために使用されるため、インスタンスが取得されるたびに常に同じになります。したがって、データを設定するということは、それを取得するときにデータが常に同じであることを意味します。

これは、新しいインスタンスを作成するたびに状態をクラスのデフォルトにリセットするため、クラスの自動ロードとは異なります。それでも、シングルトンは本質的に美化されたグローバル変数であるため、慎重に使用する必要があります。

オブジェクトの決定と作成を委任するには、ファクトリ パターンを使用する必要があります。具体的なクラスを指定したくないが、一連の条件下で特定のサブクラスが必要な場合に使用されます。構築パラメーターをオートローダーに渡すことはできず、ファクトリからどのオブジェクトを返す必要があるかを判断するために複雑なロジックが必要になる場合があるため、同じことは実現しません。

オートローダは、クラス ファイルを検索してインクルードするためにのみ使用する必要があります。オブジェクトのインスタンス化やロードするオブジェクトの決定などのロジックを実行すべきではありません (実行できません)。

于 2012-03-12T16:51:25.047 に答える