У меня есть приложение со следующим контроллером (все операции чтения/записи перенаправляются на внешний API):
Пользовательский контроллер:
- listAction
- показать действие
- editAction
- создать действие
- удалить действие
Теперь предположим, что я хочу добавить контроллер для продуктов:
ПродуктКонтроллер:
- listAction
- показать действие
- editAction
- создать действие
- удалить действие
90% кода двух контроллеров очень похожи, на самом деле различия заключаются в следующем:
- Список различных атрибутов в listAction, createAction, deleteAction
- Пользовательская фильтрация в listAction
Чтобы избежать дублирования кода, моя идея состоит в том, чтобы использовать структуру, подобную этой:
Базовый Контроллер
- listAction
- показать действие
- editAction
- создать действие
- удалить действие
UserController и ProductController наследуются от BaseController и определяют такие методы, как getListAttributes()..., которые будут использоваться родительским классом, если требуется какое-либо пользовательское поведение, например, в listAction для ProductController, я бы просто переопределил его там.
Хороший ли это подход?