Non mi piacciono i singleton, ma devo scendere a compromessi ora (ma solo come misura temporanea).
Tuttavia non voglio andare completamente singleton. Preferirei usare questo schema:
interface NameThisInterface {
//Returns the currently centralized object.
static function current();
//Centralizes the instance.
function centralize();
}
class A implements NameThisInterface {
...
}
$obj = new A;
$obj->centralize();
...
A::current(); //gets $obj.
Fondamentalmente A sarebbe la mia classe "Applicazione". Tutti i controllori, i modelli e le viste ecc. Avranno bisogno di una sola istanza. Ma per semplificare i test unitari, tra le altre ragioni, voglio che l'oggetto dell'applicazione sia memorizzato come riferimento a tutte le classi MVC. Quindi, con il modello sopra, la conversione in questo momento successivo sarà più semplice e alcuni dei test unitari potrebbero essere più semplici.
Esiste un nome generalmente accettato per questo modello?