У меня есть следующие классы: WidgetBase, TextWidget, ObjectWidget, OtherWidget. TextWidget, OtherWidget и ObjectWidget наследуют WidgetBase. ObjectWidget имеет некоторую логику, которую также должен иметь TextWidget.
class WidgetBase
{
// some base logic
}
class ObjectWidget : public WidgetBase
{
// some logic specific for ObjectWidget and TextWidget
}
class TextWidget : public WidgetBase
{
// some logic specific for ObjectWidget and TextWidget
}
class OtherWidget : public WidgetBase
{
// this class should not have logic that is specific for ObjectWidget and TextWidget
}
Как я могу поделиться логикой, специфичной для ObjectWidget и TextWidget? Но также, TextWidget может не иметь этой логики. Декораторы и рекурсивные шаблоны здесь, к сожалению, не подходят.