This has got to be one of the most frequently updated PHP sites, keep up the good work... "Questo ha ottenuto di essere uno dei siti più frequentemente aggiornati PHP, mantenere il buon lavoro ..."
Max

Introduzione al PHP e polimorfismo

Il polimorfismo è una competenza chiave in oggetto di programmazione orientata che permette agli sviluppatori di scrivere codice migliore più flessibile.

A tale scopo, eliminando la necessità di if e switch per determinare il comportamento.

Questo viene fatto affidamento su una classe di interfaccia o di base, pertanto quando si crea una logica a condizione che il codice utilizza solo alcuni metodi della classe di interfaccia o la base non ci sarà alcuna necessità di utilizzare le istruzioni if ​​come ogni classe sarà l'implementazione della classe base o metodi di interfaccia in la propria strada.

Interfaccia IAnimal
{
makeNoise ( ) ; makeNoise funzione pubblica ();
}

Cat implements IAnimal Cat classe implementa IAnimal
{
makeNoise ( ) makeNoise funzione pubblica ()
{
" Meow " ; return "Meow";
}
}

Dog implements IAnimal Dog classe implementa IAnimal
{
makeNoise ( ) makeNoise funzione pubblica ()
{
" Woof " ; return "Woof";
}
}

Quindi con il codice sopra riportato uno sviluppatore non ha bisogno di sapere che tipo di classe l'animale al fine di rendere un suono fino a quando l'oggetto è di IAnimal tipo che gestirà questa stessa.

Naturalmente questo può essere ripetuto con classi utilizzando una classe base con il metodo override makeNoise e poi questo nelle classi figlio.

Di seguito è riportato un esempio di non usare polimorfismo.

Cat classe Cat
{
Meow ( ) Meow funzione pubblica ()
{
" Meow " ; return "Meow";
}
}

Dog classe Dog
{
Woof ( ) Woof public function ()
{
" Woof " ; return "Woof";
}
}

Code to determine the action / / Codice per determinare l'azione
$ animal instanceof Dog ) if ($ Dog animali instanceof)
{
$ animal - > Woof ( ) ; echo $ animale -> Woof ();
}
altro
{
$ animal - > Meow ( ) ; echo $ animale - Meow> ();
}

Come potete vedere, perché non esiste un metodo standardizzato tra le classi logica aggiuntiva deve essere utilizzato per garantire il corretto metodo viene chiamato.


Nessun commento è stato fornito.
security image
Scritto da Dominic Skinner
Ultimo aggiornamento: 2011/10/25 16:00:38