Как организовать множество абстрактных классов в переносимом фреймворке (библиотеке)? Задача:
Требуется реализовывать несколько различных проектов, которые используют схожий функционал (логика, данные), за исключением некоторых расширений со стороны каждого проекта.
Одно из решений: вынести общий абстрактный функционал в библиотеку, и подключать её к каждому проекту.
Но по мере совмещения всё более новых проектов с этой библиотекой, становится ясно, что вынесенный ранее абстрактный функционал недостаточен и требует тонкой настройки.
Пример:
Есть 3 компании, у которых по разному организованы связи групп сотрудников, но есть общий функционал: увольнение, повышение. Выносим в абстрактный класс библиотеки основные функции. Но оказывается, что у компании №1 группы сотрудников должны быть выстроены по иерархии (один отдел вложен в другой), но компании №2 не нужна вложенность. Если вложенность сотрудников реализовывать в общем функционале, она в некоторых проектах вообще не будет использована. Можно сделать другой класс в библиотеке, который наследуется от основного функционала и расширяет его функционалом вложенности для групп сотрудников. Но а вдруг потребуется множество подобных расширений одного абстрактного класса? А если одно расширение исключает другое?
К тому же, если фреймворком (библиотекой) захотят воспользоваться люди из другой компании, у которых есть вложенность групп сотрудников, но нет функционала увольнения, то как быть тогда? Ведь в библиотеке уже реализованы абстрактные классы с функционалом увольнения.
Одна из сторон вопроса: Как можно реализовать удобную и широкую библиотеку, не зная деталей проектов, которые будут с ней работать, но зная их общую концепцию?

21 Авг 2019 в 07:02
185 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 722 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир