Autor Zpráva
joe
Profil
Ahoj,

z jakého důvodu se nepoužívají v modelech statické metody? Může mi to někdo nějak vysvětlit?

Já je totiž pořád používám :-) Přijde mi to jednoduché, rychlejší (na psaní) ...
Lamicz
Profil
Pytel statických metod ve třídě není OOP, ale fce s "namespace". Statické metody mají své místo v určitých návrhových vzorech a "jen tak" bych je nepoužíval. BTW co znamená "jednoduché, rychlejší (na psaní)"? Podle tohoto kritéria bys měl psát spagetti kód do jednoho souboru a nezabývat se nějakým OOP, tam už musíš psát class a function... :)
joe
Profil
Lamicz:
Když si píšu modely staticky, přijde mi jednodušší pak kdekoli zavolat Model::metoda();

Než vytvářet instance všude tam, kde potřebuju.

A jo, asi to nebude tak OOP jako si i z modelů vytvářet instance, ale k čemu mi to je? Jaký výhody mi to přinese? ...?
oop
Profil *
Ja to vidím tak že výhodne je pristupovať k metódam ako ku statickým vo vnútri tried ak jedna rozširuje druhu atď. Ale výsledná aplikácia by mala byt instancia.
Mastodont
Profil
přijde mi jednodušší pak kdekoli zavolat Model::metoda()
To můžeš rovnou vytvářet klasické procedurální funkce model_save() ...

Statické metody se hodí u objektů s globální dostupností, třeba Config. Pokud třídu používáš jen někde, vytvářej instance.
Ugo
Profil *
Jednoduchá poučka je ... co jde udělat staticky, udělejte staticky. De o to že statické metody jsou rychlejší. Pokud se obejdeš úplně bez instancí, pak dobře nechápu k čemu vlastně máš třídy.
Já jim třeba na chuť ještě nepřišel, hlavně ta blbá syntaxe se píše hrozně a vypadá jak kdyby spadle ze stráně do šípku :-P
joe
Profil
Mastodont:
To můžeš rovnou vytvářet klasické procedurální funkce model_save() ...

To můžu, ale dělám to proto, abych to měl alespoň oddělené a to co má být v modelu (práce s db), aby tam opravdu byla... Kdybych si psal funkce do Controlleru, pak bych se v tom nemusel vyznat víc než teď :-)

Statické metody se hodí u objektů s globální dostupností, třeba Config. Pokud třídu používáš jen někde, vytvářej instance.
ok.

Ugo:
Pokud se obejdeš úplně bez instancí, pak dobře nechápu k čemu vlastně máš třídy.
To jsem před chviličkou napsal, abych si aspoň trošku rozdělil kód a neměl v tom binec.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0