Какой подход к проектированию лучше всего подходит для такого рода проблем
Привет,
Я пытаюсь придумать решение для приведенной ниже проблемы и не знаю, как подойти к ней, не делая клиента зависимым от конкретных классов. Постановка задачи выглядит следующим образом
"У меня есть список продуктов, скажем, A, B, C, D. A имеет 3 свойства с именем x,y и z и 1 функцию F1. продукт B имеет 4 Свойства с именем x,y,z и p и 2 функции с именем F1 и F2 и так далее для продукта C также имеет 4 Свойства с именем x,y,z и p и 2 функции с именем F1 и F3. а продукт D имеет 4 Свойства с именем x,y, z и p и 2 функции с именем F1 и F4.
Теперь из-за этого я не могу иметь общий интерфейс или абстрактные классы, потому что класс B имеет одну дополнительную функцию, а C и D имеют одну функцию, которая отличается от B и которая является общей.
Есть ли какое-либо возможное решение, с помощью которого я могу избежать этого ? Любое предложение будет высоко оценено.
Что я уже пробовал:
Я думал о том, чтобы иметь код мошенника в одном абстрактном классе, а не создавать конкретный класс с дополнительной функцией, которая содержит абстрактный класс (как зависимость). Но в таком случае мой клиент будет вынужден зависеть от конкретного класса.