在代码审查期间,我遇到了以下代码。
我的直觉告诉我,这没有遵循正确的 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);
}