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