Quindi, il mio problema è nel contesto di un approccio in stile MVC. Il codice qui è PHP, ma spero che questo sia un problema di design indipendente da esso.
abstract class Controller
{
private $domain;
private $view;
function __construct() {
$this->domain = new Domain;
$this->view = new View;
}
}
Quindi voglio creare una serie di classi che ereditano da questa classe astratta, come BlogPageController o ErrorPageController. I costruttori di queste sottoclassi assomigliano a questo:
class BlogPageController
{
function __construct() {
$this->domain = new BlogPageDomain;
$this->view = new BlogPageView;
}
}
Il problema che vorrei affrontare è dover sempre definire il costruttore per le mie sottoclassi concrete - c'è un modo in cui posso fare in modo che la Constructor della classe genitrice esegua questo, ma a condizione che invece di creare (per esempio) un generico Oggetto dominio:
$this->domain = new Domain;
Creerà un dominio corrispondente:
$this->domain = new <concrete class>Domain;
Come nell'esempio sopra?