Ответы пользователя по тегу Паттерны проектирования
  • Как произвести валидацию модели до сохранения при использовании паттерна Repository?

    Deroy
    @Deroy
    Senior Developer, Software Architect
    при использовании паттерна репозиторий вам стоит перестать думать о модели которая путешествует через систему, как о месте где должна случаться валидация входных данных. Такой подход получил распространение благодаря RAD-framework'ам (Yii и ему подобные) - упрощенка цель которой - быстрая скорость разработки.

    Если смотреть на архитектуру с точки зрения "чистоты", то:

    Модель которая путешествует через всю систему должна содержать в себе только доменную логику, или не содержать ее вовсе (т.е. по факту являться Value-object'ом).

    Валидация входных данных описывается отдельной моделью - моделью реквеста - и содержит в себе логику валидации/маппинга/и пр.

    т.е. более менее стандартный подход со стороны расширяемости, надежности, тестируемости и гибкости приложения к последующим изменениям - это иметь валидацию/парсинг входных данных отдельно для каждого случая (например отдельно для вебформ и отдельно для JSON/XML/etc API, конечно фрагменты могут быть переиспользованы, наследованы или примешаны и т.д.), модели - отдельно, работу со стораджом отдельно.

    Последнее вы уже сделали = репозиторий как раз оно.

    Так что ваше предположение - верно.
    Ответ написан
    Комментировать