我在遗留系统中看到了代码的公共方法,克隆对象,执行状态变异并返回对象的新副本.
它只是感觉不对,但只是想知道是否有人知道这样做的一个众所周知的理由.否则,如果有人知道一个非常糟糕的理由,你可以帮忙.在我去提出一个重大改变之前,我只需要为这种情况提出一些争论.
谢谢
示例代码
public Class MyClass
{
public string MyProp { get; set; }
public MyClass Cancel()
{
var newObj = this.Clone();
newObj.Status = Status.Cancelled;
return newObj;
}
}
Run Code Online (Sandbox Code Playgroud)