0

私はシングルトンについて多くのことを読んできましたが、ほとんどの人はシングルトンが悪い習慣であり、可能な限り回避することに同意しています。ほとんどの人は、それらを使用するアプリをデバッグするのが難しいため、これを言います。

今、単純な CMS を作成して、いくつかのアプローチを試してみましたが、それらが最良の選択のように思えました。

  1. 設定データ

そのファイルはアプリケーションの起動時に読み込まれますが、アプリケーション全体で構成データを呼び出すときにシングルトン パターンを使用しない理由がわかりません。

  1. リクエストデータ

リクエスト データは、アプリケーション全体でシングルトンを使用してデータの読み取りと書き込み (Cookie など) に使用できるように、php サーバー変数 (POST、GET、COOKIE) からのすべての情報を保存する必要があります。

  1. 応答バッファ

テンプレートによってレンダリングされるすべてのデータを保持する応答クラスを (シングルトンとして) 使用したいと考えています。そのため、アプリケーションはすべてのビューをロードして、それらを 1 つずつレンダリングし、エコーされたデータを応答クラスに格納し、最後に、応答に格納されているドキュメント全体を出力できます。

すべての例に対する質問: A) それは本当に悪い習慣ですか? また、その理由は何ですか? 私はここに悪を見ません。B) 代替/より良い方法はありますか?

ありがとう!

4

1 に答える 1

2

それは本当に悪い習慣なのですか?

設計パターンは提案であり、標準ではありません。それらを使用したり、嫌ったり、「アンチパターン」と呼んだり、好きなことをしたりできますが、それはあなたの意見に過ぎません。4 人のギャングやそこにいるブロガーは、あなたと同じように意見を述べています。それは本当に問題ではありません。

誰かがそれを悪い習慣と見なしているかどうかを自問する代わりに、「私はそれを悪い習慣と考えていますか?」と自問してください。答えが「いいえ」の場合は、それを選択してください。

この決定を下す前に、両面 (シングルトン賛成派と反対派) を読み、それについて自分の意見を述べることをお勧めします。しかし、最終的に正解はなく自分がどう判断するかです

別の(より良い)方法はありますか?

一般的に言えば、できる限りシングルトンよりも依存性注入を使用する傾向があります。しかし、DI を使用する方法がなく、Singleton がオプションである場合は、必ずそれを選択します。私の提案は、最も重要なパターンを学び、その特定のコンテキストで自分にとって意味のあるものを使用することです.

于 2013-02-04T17:31:16.567 に答える