方法修改参数时的推荐模式

时间:2018-10-31 10:35:35

标签: oop

比方说,我正在创建一个名为SomeLibrary的类。此类具有Calculate方法,该方法带有一个参数-SomeClass的实例。

class SomeLibrary 
{
    void Calculate(SomeClass argument) 
    {
        //Some algorithm...

        //argument's value is changed!
        argument.value = 3;
    }
}

Calculate的结果是修改的SomeClass。如何通知用户呢?我看到2种解决方案:

  1. 返回SomeClass而不是void-在这种情况下,参数仍在被修改,但是这次它也被返回。这样做的缺点是用户可能不希望参数会被修改,也许他需要在修改之前保留其版本。
  2. 在“计算”中,可以完成参数的深层副本,然后将其返回。但是,创建深层副本并不总是一件容易的事。

你怎么看?

1 个答案:

答案 0 :(得分:1)

如果您愿意接受OOP,则需要与 mutation 共存。也就是说,您提供了某种实例,通常人们会期望它会被突变。没问题。

除非您自己的文档说相反,否则变异就可以了。否则,您可能想看看AutoMapper

相关问题