-1

Zendでモデルを構築して、キーデータを使用してオブジェクトを構築しています。このオブジェクトは、必要に応じてレイジーロードされ、セッション変数に格納されます。

シングルトンパターンを検討していますが、短所でいくつかの資料が不明確になっています。シングルトンは持続し、グローバルのように機能するように見えます。ただし、HTTP環境では(セッションまたはデータベースに格納されていない限り)、おそらく要求が続く限り持続します。

ユーザーを認証し、ユーザーIDなどをプライベート変数に保存し、現在のユーザーが情報にアクセスするときに、つまり現在のアドレスにデータベース呼び出しを保存するための情報を保存したいと思います。

シングルトンはセッションの間だけ持続し、後続の各ユーザーが自分でシングルトンを作成できるというのは正しいですか?

長所と短所についての考えは高く評価されています。

4

1 に答える 1

0

あなたの質問は本当に明確ではありませんが、シングルトンは各リクエストの間に消えます。それは単なるクラスの一種(パターン)です。サーバーへの呼び出しの間にそれを保持するために何もしなければ、それは消えます。

シングルトンに関する短所は、多くの場合、悪い設計を反映していることです。シングルトンは、静的なものをもたらします。しかし、優れたOOP設計は、物事をプライベートでモジュール式に保つことを想定しているため、クラス間の結合はほとんどないはずです。どこでも多くのクラスが使用されている場合は、何か問題がある可能性があります。

TMHOは、グローバルリクエストコンテキストとユーザーコンテキストを維持するためにアプリに1つまたは2つのシングルトンがある場合、それで問題ありません。それらが10個ある場合は、アプリの一部を再設計する必要があるかもしれません。

于 2012-08-26T23:53:29.297 に答える