正如您在下面看到的,在构造函数中,我正在实例化一个验证对象,因此我可以在 set 方法中验证用户的电子邮件。这种架构是最佳实践还是有缺陷?我可以避免让我的 User 类直接依赖于我的 Validation 类吗?
Class User {
Private Email
//constructor
User() {
Validation = new Validation
}
SetEmail(NewValue) {
if (Validation.isEmail(NewValue)) {
Email = NewValue
}
}
还有一个相关的问题:当 set 方法收到无效值时,正确的响应是什么?我看到 2 个选项
- 不要设置值并返回 false
- 无论如何设置该值,但为该对象设置一个错误属性。(所以如果设置了 User.Error 我知道出了点问题)
我怀疑#1 是最佳实践,因为您可以确保任何对象属性的值始终有效。正确的?