Y si el getter al que llamo tiene que devolverme un objeto que implemente la interfaz YYY pero voy a usarlo contadas veces?
Es muy común utilizar la carga de clases y/u objetos sólo cuando son necesarios, de otra manera, estarías desperdiciando recursos.
Ejemplo:
Código PHP:
Ver originalclass A{
private $miServicio;
private $id;
private $contador;
public function __construct($id, $contador){
$this->id = $id;
$this->contador = $contador;
}
public function getServicio(){
if(null === $this->miServicio){
//cargar clase, etc
$this->miServicio = new Servicio($this->id);
}
return $this->miServicio;
}
public function usar(){
$this->miServicio->hacer(); //No funciona
$this->getServicio()->hacer(); //Bien
}
}