ti faccio un altro esempio:

devi inviare qualche mail ... usi mail perchè ti fa comodo ... o usi una libreria, quella che ti pare.

Gli headers sono sempre gli stessi, magari anche il body, ma devi usare parametri extra ... hai due opzioni ...

codice:
// opzione classica
mail($to, $subject, $body, $headers, $parameters);
devi avere sempre tutte le variabili dietro e/o protartele in giro per ogni funzione ... può capitare ... opzione numero due
codice:
// partial function
$mail	= new ReflectionPartialFunction('mail', $subject, $body, $headers, $parameters);
Hai una sola variabile da portarti in giro, un solo punto dove viene configurata, zero paranoie per i parametri (variabili ridefinite, mancanti, dimenticate, resettate) ... e questo per completare l'operazione dove ti pare:
codice:
$mail->invoke($to);
ora dimmi se non è stra comoda la ReflectionPartial

ok, mi sbavo da solo, ma come ho detto di implementazioni ce ne sono a bizzeffe e ad esempio tante volte può sostituire oggetti usati a mo di wrappers, ed in questo caso è anche più veloce degli oggetti