Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Odpověď na názor

Odpovídáte na názor ke zprávičce PHP: Je rychlejší singleton nebo statická třída?.

Vít Šesták aura:72
3. 3. 2010 11:08

Re: Jiná kritéria

celé vlákno

Samozřejmě, vše záleží na správné interpretaci. Konkrétně o HPHP nejde, jde mi spíš obecně o přístup „Zítra nasadíme toto a výkon může být jinde.“.

Určité odůvodnění mohou mít jak „statické třídy“*, Singleton, tak i Dependency Injection.
  • Statické metody mají podobný význam jako fuknce.
  • Singleton použiju typicky tehdy, když chci implementovat nějaké rozhraní a všechny instance by byly stejné, například http://gist.github.com/319827 . Nepovažuji to jako vhodné řešení například pro databázové připojení. Považuji jej obvykle za vhodnější řešení než statické metody. Například v Javě si také mysleli, že třídě Math budou nejlépe slušet statické metody. Pak se tu objevila třída StrictMath. Budu chtít udělat třídu, která umí pracovat jak s Math, tak StrictMath. Co s tím? Kdyby to byly Singletony se společným abstraktním předkem (nejlépe s package-private konstruktorem), problém by byl snadno vyřešen.
  • Dependency Injection je vhodná pro předávání instancí napříč objektovým modelem a kam až vím to nenahradí jakýkoli jiný návrhový vzor. Používat zde Singleton apod. je něco jako používat globální proměnnou.

*) Tento pojem trošku koliduje se stejným pojmem v Javě, ale, myslím, víme, o čem mluvíme.

   
Chcete přispět jako registrovaný uživatel? Přihlaste se ke svému účtu.
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?
 

Pravidla pro diskutující: Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s pravidly.

Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.

Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul