哪些因素决定哪种方法更合适?
最佳答案
我认为两者都有自己的位置。
你不应该简单地使用 DoSomethingToThing(Thing n)
只是因为你认为“函数式编程很好”。同样,您不应该简单地使用 Thing.DoSomething()
因为“面向对象编程很好”。
我认为这归结为您想要传达的内容。不要将您的代码视为一系列指令,而是开始将其视为故事的段落或句子。从手头任务的角度考虑哪些部分是最重要的。
例如,如果“句子”中要强调的部分是对象,则应使用 OO 样式。
示例:
fileHandle.close();
大多数情况下,当您传递文件句柄时,您主要考虑的是跟踪它所代表的文件。
反例:
string x = "Hello World";
submitHttpRequest( x );
在这种情况下,提交 HTTP 请求远比作为正文的字符串重要,因此
submitHttpRequst(x)
优于 x.submitViaHttp()
不用说,这些并不相互排斥。你可能真的有
networkConnection.submitHttpRequest(x)
你将它们混合在一起。重要的是您要考虑强调哪些部分,以及您将向代码的 future 读者传达什么。
关于language-agnostic - DoSomethingToThing(Thing n) vs Thing.DoSomething(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76812/