language-agnostic - DoSomethingToThing(Thing n) vs Thing.DoSomething()

标签 language-agnostic oop coding-style

哪些因素决定哪种方法更合适?

最佳答案

我认为两者都有自己的位置。

你不应该简单地使用 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/

相关文章:

algorithm - 包装 2D 柏林噪声

java - 覆盖的目的

Javascript OOP 类 - 将属性分配给函数

php - Wordpress:更改 "older posts"样式而不弄乱主题

java - 内部类默认为 "sensible"接口(interface)?

installation - 是否有任何 NSIS 最佳实践或编码标准?

oop - 使用 BDD 时遵循开放/封闭原则有什么好处吗?

language-agnostic - 解释重构

language-agnostic - 计算页面浏览量

java - 对子对象的引用数组初始化失败