Я разрабатываю систему кэширования изображений, которая будет использоваться в MVC CMS. Основное назначение кэширования изображений - модифицировать изображения: масштабировать, обрезать и т. Д. И кэшировать их на сайте клиента.
Я создал модель и маппер кэша изображений, которые взаимодействуют с базой данных, чтобы отслеживать изображения и знать, какие действия были применены к ним (масштабирование, обрезка и т. Д.).
В дополнение к Model и Mapper я создал класс ImageCacher, который используется API для управления созданием модели и изображений на основе аргументов, передаваемых клиентским сайтом, этот класс создает изображения и генерирует ссылки на изображения для просмотра.
Сотрудник утверждал, что мне нужно включить функциональность этого последнего класса в модель, так как основная часть логики должна идти в модели.
Я с уважением не согласен с ним, так как считаю, что обязанность модели - работать с информацией об изображениях, кэшируемых на уровне базы данных, а класс ImageCacher отвечает за создание URL / изображения, которое мы будем кэшировать (сохраняя принцип единой ответственности). В дополнение к этому я считаю, что модель не должна иметь функций, связанных с презентацией, таких как создание или показ изображений.
У кого-нибудь есть понимание этого? Существует ли какой-то конкретный шаблон проектирования, который сделает это разделение задач понятным и можно ли многократно использовать образное хранилище? Должен ли я добавить всю логику в модель?
Спасибо.