sql >> Databáze >  >> RDS >> Mysql

Byl by singleton dobrým designovým vzorem pro mikroblogovací stránky?

Účelem Singletonu je omezit instance objektů na jednu a poskytnout globální přístup.
Obojí jsou věci, které nechcete ani nepotřebujete.

Omezení vaší instance na jednu instanci je v PHP poměrně zbytečné, kde se toto omezení vztahuje pouze na instance v aktuálním žádost. Pokud na váš mikroblogovací web zasáhnou dva požadavky současně, bude na každý požadavek stále existovat jedna instance. Pokud se chcete ujistit, že existuje pouze instance, jednoduše nevytvářejte instanci druhé instance.

Globální přístup také není nic, co byste chtěli, protože narušuje zapouzdření. Pokud potřebujete určitou instanci uvnitř svých objektů, předejte ji přes injekce závislosti . To je čisté a udržovatelné. Má další výhodu v tom, že vám umožňuje snadno vyměňovat závislosti s jinými implementacemi, jako jsou například falešné třídy pro vaše testy jednotek .

Dokonce i Erich Gamma , jeden z vynálezců vzoru Singleton, dnes tento vzor zpochybňuje:

Nejlepší je vyhnout se Singletonům.



  1. Odeslání pole hodnot do procedury Oracle k použití v klauzuli WHERE IN

  2. cx oracle ImportError

  3. Uživatelsky definovaný zdroj MySQL pro Google Cloud Dataflow

  4. Výchozí název databáze MySQL