Một thực thể (giả sử UserEntity) có quy tắc cứng nhắc cho thuộc tính của nó và có thể tồn tại ở 2 trạng thái - vẫn tồn tại (có nghĩa là có id
) và được giữ nguyên trước (nghĩa là chưa có số id
).Làm cách nào để xử lý xác thực đối tượng miền trước khi nó tiếp tục tồn tại?
Theo câu trả lời cho this question about how to handle required properties, UserEntity "thực" chỉ được tạo bằng một id
được truyền vào hàm khởi tạo của nó.
Tuy nhiên, khi tôi cần tạo một new UserEntity
từ thông tin do trình duyệt gửi, tôi cần có khả năng xác thực thông tin trước khi lưu vào db.
Trước đây, tôi chỉ cần tạo UserEntity trống (không có id
), đặt thuộc tính mới và xác thực thuộc tính - nhưng, theo cách nghĩ mới, an toàn hơn về thực thể này, tôi không bao giờ nên tạo UserEntity mới mà không cần id
.
Tôi không muốn tạo HAI địa điểm biết cách xác thực các thuộc tính của UserEntity, bởi vì nếu chúng thay đổi (và chúng sẽ) sẽ tăng gấp đôi mã để cập nhật và tăng gấp đôi khả năng lỗi.
Làm cách nào để tập trung hiệu quả kiến thức xác thực của các thuộc tính của đối tượng của tôi?
Note
Một ý tưởng tôi đã được phản ánh in this question, trong đó tôi xem xét lưu trữ các thuộc tính ngoài quốc doanh như email, mật khẩu và tên trong một đối tượng giá trị tiêu chuẩn đó sẽ biết về các quy tắc cho thuộc tính của nó mà các dịch vụ khác nhau, như Controller, Validator và Repo hoặc Mapper có thể sử dụng.
Ai có thể giải thích điều này theo cách đơn giản/khác biệt hơn không? – johnnietheblack