При разработке моих интерфейсов (контрактов) и их конкретных реализаций, как моделей данных, так и репозиториев, я задаюсь вопросом, куда должна идти логика валидации. Часть меня (которая имеет тенденцию выигрывать) говорит, что сам класс должен отвечать за свою собственную проверку (максимальную длину строки, буферы даты и т. Д.), Но другая часть меня говорит, что это следует перенести в хранилище, потому что в зависимости от в постоянном хранилище эти значения могут меняться в зависимости от реализации вашего репозитория.
Я думаю, что есть некоторая проверка, которая ДОЛЖНА быть сделана на уровне класса, и думаю, что она, вероятно, должна храниться вместе, а не изменяться, даже если это происходит в репозитории, поэтому я стараюсь держать ее в классе.
Я собираюсь включить проверку пользовательского интерфейса, но этого никогда не бывает достаточно, поскольку большая часть проверки пользовательского интерфейса может быть обойдена.
Любопытно, что люди думают, и причины этого.