我在代码审查期间遇到了以下代码。
我的直觉告诉我,这不符合正确的 OOP。
我认为 LoadObject 方法应该返回一个新的 SomeObject 对象,而不是修改传递给它的对象。尽管我真的找不到正确的解释为什么这样更好。
我的解决方案更好吗?如果是,为什么?具体来说,在给定的代码示例(如果有的话)中违反了哪些 OOP 原则或标准?
public void someMethod()
{
...
var someObject = new SomeObject();
LoadSomeObject(reader,someObject);
}
private void LoadSomeObject(SqlDataReader reader, SomeObject someObject)
{
someObject.Id = reader.GetGuid(0);
}
最佳答案
代码的编写方式没有任何问题,因为您只是在修改 someObject 的属性。
但是,在 LoadSomeObject 中创建 someObject 并返回它也是正确的。
在这一点上,两种选择都是正确的。
关于c# - 返回一个新对象与修改作为参数传入的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462627/