Singleton facade

Tags:    php oop design

Har afprøvet et anderledes design af singletons, men kan ikke lige vurdere om den er noget værd i forhold til den metode man allerede bruger i dag.

Men hvis der er nogle der kan bruge dette til noget så værsgo.

Fold kodeboks ind/udKode 




Ville du ikke hellere kalde dit objekt med:

$test = SingletonFacade::getInstance(); ?

Ellers skal du jo til at tjekke det i hvert eneste metode i objektet? Ellers ligner det rimelig meget det jeg har .



Jeg prøver for så vidt muligt at undgå singletons i webudvikling, da den så deles mellem alle besøgende. Kan kun lige komme i tanke om noget som eks. log, der kan bruges til singleton. Hvad bruger i dem til i webudvikling?



I PHP vil en singleton aldrig deles mellem besøgende, da hver besøgende er i sin egen tråd/process.

Jeg bruger f.eks. singletons til at gemme data i der skal bruges flere steder i et system.

Mht. til Gnu's implementering ser jeg ikke den store fordel i det. Tværtimod. Singletons kan i forvejen være forvirrende, og at prøve at "skjule" at man bruger en singleton ved at få det til at se ud som om man laver en ny instans gør det kun mere forvirrende.



Indlæg senest redigeret d. 26.07.2011 23:33 af Bruger #3275
I PHP vil en singleton aldrig deles mellem besøgende, da hver besøgende er i sin egen tråd/process.


Hvorfor så bruge singletons? Hvorfor laver man ikke bare en (statisk - ved ikke om man kan det i php) klasse, man bruger? Man har vel ingen reel nytte af en singleton så? Er det så ikke netop et antipattern? (worst practice, fejlfortolket som best practice)



Nogen ser det som et anti pattern. Jeg bruger dog også selv et singleton pattern på et SQL abstraktionslag, men grunden til jeg benytter det er at jeg stadigvæk har datakapsling, da jeg gemmer tegnsætning og brugernavn, adgangskode i klassen. Jeg ved stadigvæk ikke om det er indbefattet som et anti pattern, men jeg foretrækker at gøre det på denne måde så længe der ikke arbejdes med tråde (Når vi snakker om andet end web udvikling).

Gnu: Dog kan jeg ikke helt se hvad du vil opnå ved at bruge dit singleton på den måde. Jeg synes det bliver lidt mere forvirrende.



Indlæg senest redigeret d. 28.07.2011 17:11 af Bruger #6559
Singleton ér et antipattern, og af mange årsager. Jeg vil ikke gennemgå dem her, men kig jer lidt omkring på nettet. Start måske her: http://en.wikipedia.org/wiki/Singleton_pattern#Drawbacks



Hvorfor så bruge singletons? Hvorfor laver man ikke bare en (statisk - ved ikke om man kan det i php) klasse, man bruger? Man har vel ingen reel nytte af en singleton så? Er det så ikke netop et antipattern? (worst practice, fejlfortolket som best practice)

Der er heller ikke den store forskel. Jeg kan bare godt lide at man stadig kan have noget kode i sin constructor, og så kan jeg bedre lide at skrive

Fold kodeboks ind/udKode 
fremfor
Fold kodeboks ind/udKode 
inde i klassen.




Indlæg senest redigeret d. 28.07.2011 18:03 af Bruger #3275
t