Ho usato un modello per anni, ma non so come si chiama.
Sembra così ....
class xzy
{
public function getFoo()
{
if ( undefined(this.foo) )
{
this.foo = new Foo;
}
return this.foo
}
public function setFoo(foo)
{
this.foo = foo;
return this;
}
public function getResult()
{
if ( undefined(this.result) )
{
this.result = this.getFoo().action();
}
return this.result;
}
}
Lo trova ottimo per i test, ma consente comunque un alto livello di incapsulamento. È anche ottimo per asciugare il codice. Anche io uso molto raramente un costruttore. Sono ora in una posizione in cui potrei davvero fare la specificazione del modello in alcuni documenti, ma non so come si chiama ed è una cosa difficile da provare e Google.