Ho colleghi al lavoro che sostengono che "L'ereditarietà è un anti-modello" e che vogliono usare sistematicamente la composizione, tranne che nei casi (rari, secondo loro) in cui l'ereditarietà è davvero il modo migliore per andare.
Voglio suggerire un'alternativa dove continuiamo ad usare l'ereditarietà, ma è severamente vietato (applicato dalle revisioni del codice) di usare qualsiasi cosa tranne i membri pubblici delle classi base nelle classi derivate.
Per un caso in cui non è necessario scambiare componenti di una classe in fase di runtime (ereditarietà statica), sarebbe sufficiente per la composizione? O sto dimenticando qualche altro aspetto importante della composizione?