Я имею две параллельные цепи наследования:
Vehicle <- Car
<- Truck <- etc.
VehicleXMLFormatter <- CarXMLFormatter
<- TruckXMLFormatter <- etc.
Мой опыт заключается в том, что параллельные иерархии наследования могут стать головной болью обслуживания при их росте.
то есть. Не добавляя методы toXML(), toSoap(), toYAML()
к моим основным классам.
Как избежать параллельной иерархии наследования без нарушения концепции разделения проблем?