处理方法执行所依赖的属性的最佳方法是什么?
假设您有一个具有 2 个属性的类和一个使用这 2 个属性执行某些操作的方法。实例化类,设置属性,然后执行方法(不带参数)会更好吗?还是实例化类,然后执行方法,传入将设置属性的参数?
例如:
class Person ...
string Name ...
string Address ...
void Save() {
Database.SavePerson(this.Name, this.Address);
}
--- 或 ---
class Person ...
string Name ...
string Address ...
void Save(string name, string address) {
this.Name = name;
this.Address = address;
Database.SavePerson(this.Name, this.Address);
}
在第一个示例中,如果在调用 Save 方法之前尚未设置名称和地址,您将收到错误消息。因此,您似乎必须验证这些属性是否已在方法中设置。
第二个示例强制用户提供执行该方法所需的数据。但是,这似乎有点多余,因为传入的参数已经是对象的属性。
是否有“最佳”方法来做到这一点?
提前致谢。
最佳答案
首先我会考虑让实体负责其自身的持久性是否是您想要的设计。
如果不是,则 Person
实体将公开属性,而另一种类型将负责保存该 Person
实体(如果使用类似例如 Repository 模式)。
如果实体负责持久化自身(如果您使用丰富的域模型,例如与 CSLA 等框架一起使用的模型,就会出现这种情况),那么您将只有一个无参数的Save
方法,如果属性是必需的,那么某种形式的验证框架将捕获任何缺失的要求。
关于c# - 方法依赖 - 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12962910/