Quel tipo di classi deriva dalle classi statiche dei linguaggi ad oggetti.
Nascono per fornire set di funzioni anche in lungaggi oop come java.
E li non esiste che mescoli rba statica con roba dinamica esplode tutto. PHP d'altro canto ti consente di fare quelle porcate.
Io personalmente odio vedere chiamate del tipo classeStatica::attributo = valore ...
non eiste!
classe->metodo()
classe->attributo // get
classe->attributo = valore // assegnazione
mescolare queste cosecon classi spacciate per classi singleton e' una cosa oscena. Io personalmente la odio. Lo scopo di queste classi pseudostatiche e' quello di avere questo
classe::funzione( parametri )
Ebbasta la classe non deve avere attributi etc... altrimenti non ha alcuin senso usare queste classi non cabmia nulla fare una classe "normale". Queste classi mutanti sono oscene da vedersi e da usrsi.
Inoltre le classi statiche (opportunamente usate) servono per il facotrying, ossia ti costruisci le tue fabbrice di cose(altre classi modelli view controllers etc) e quidni nei server dove puoi usare la persistenza ( ad esempio java servlet+hibernate) o alcuni frameworks php.
Sinceramente e' assoluta follia avere una classe che ritorni un'istanza di se' stessa !!
In java hanno implementato reflection ma java e' in lunguaggio pseudocompilato quindi li serve ... in php NO! Non servono ste cose.
echo get_class( $object ) ;
se mi serve un'istanza di una class .... ??? perhe devo fare classe::getInstance() !!! E' FOLLIA!
$oggetto = new miaClasse( /*paramters for default constructor*/ ) ;
L'istanza della classa e' stipata in $oggetto ....perche' complicarsi inutilmente la vita ????
Non capisco queste classi mutanti vanno soppresse e va scoraggiato completamente il loro utilizzo, sono brutte pesanti e inutili e creano solo casini inutili.
questa eì la mia opinionne. SU html posso fare quello che gli pare il sito e' loro e le guide le fanno loro, ma fidati usare questo apporccio ti dai solo la zappa sui piedi .
static class stringhe()
{
public static doPrinteRabbit(){ }
}
CI siano NON CI SONO ATTRIBUTI!!!!
e la usi correttamente stringhe::doPrintRabbit();
quindi hai in un constesto OOP la possibilita di avere funzioni cosa che altrimenti non avresti e sarebbero tutto oggetti ....
Questo e' il preche'.

Rispondi quotando