Я работаю с привязкой к данным Windows Forms, реализуя интерфейсы типа IDataErrorInfo
. Чтобы это работало, объект домена (или бизнеса) может находиться в недопустимом состоянии. Фактически, объект домена должен сохранять недопустимое значение, поскольку пользователь ввел его, чтобы IDataErrorInfo
работал правильно. Пока объект не сохранен в недопустимом состоянии, мы в порядке.
Однако, как показывает сюжетная линия, мне было интересно, есть ли разница между противопоказанием и проверкой. Первый запретил бы пользователю вносить изменения ВСЕ, последний - тип проверки, который я описал выше.
Позвольте мне объяснить - если у вас есть коллекция Person
, а Person
имеет свойство SSN
. PersonCollection
имеет ключ SSN
, то есть в коллекции не может быть двух Persons
с одинаковыми SSN
. Если мы разрешаем временно недопустимое состояние для Person
, мы вводим ситуацию, когда в коллекции есть два Persons
с дубликатом SSN
, хотя и временно. Это может привести к проблемам, когда другой объект, работающий с PersonCollection
, ищет объект Person
с дублированным SSN
, получая два объекта.
Итак, мне кажется, что определенные типы проверок должны быть ограничениями, а не проверками (после изменения).
Мысли