Esiste un modello di progettazione per la gestione delle situazioni in cui i parametri dei costruttori di gerarchia di classi impongono che le classi più profonde abbiano troppi parametri?
Idealmente questo sarebbe in C ++, se la lingua è importante. Prendi in considerazione il seguente esempio generico:
class dependency1;
class dependency2;
class dependency3;
class ClassA
{
public:
ClassA(dependency1* dep1) { }
};
class ClassB : public ClassA
{
public:
ClassB(dependency1* dep1, dependency2* dep2)
: ClassA(dep1){ }
};
class ClassC : public ClassB
{
public:
ClassC(dependency1* dep1, dependency2* dep2, dependency3* dep3)
: ClassB(dep1, dep2) { }
};
Ciascuna classe nella gerarchia aggiunge la sua dipendenza specifica, portando infine a 3 parametri nel ctor dell'ultima classe, anche se i 2 parametri vengono utilizzati solo per passare alle classi base. Puoi immaginare un esempio più complicato con 11 parametri simili nell'ultima classe ...
Capisco che potrebbe essere difficile rispondere a questa domanda in generale, ma mi piacerebbe sapere come affrontare questo problema in generale.
L'unica cosa vicina a ciò che ho trovato è usare il pattern Builder per la situazione con troppi parametri, ma non sembra adattarsi a questo caso (o semplicemente non vedo come aiuta a semplificare la gerarchia delle classi).
Sentiti libero di reindirmi per duplicare la risposta, non sono stato in grado di trovarne, ma sembra qualcosa che dovrebbe essere già stato chiesto.