Ori*_*rds 14
我认为两者都有自己的位置.
你不应该DoSomethingToThing(Thing n)仅仅因为你认为"功能编程是好的"而使用.同样,你不应该简单地使用,Thing.DoSomething()因为"面向对象的编程很好".
我认为这取决于你想传达的内容.不要再将代码视为一系列指令,而是开始将其视为故事的段落或句子.从手头的任务角度考虑哪些部分是最重要的.
例如,如果您要强调的"句子"部分是对象,则应使用OO样式.
例:
fileHandle.close();
Run Code Online (Sandbox Code Playgroud)
大多数情况下,当您传递文件句柄时,您正在考虑的主要事情是跟踪它所代表的文件.
反例:
string x = "Hello World";
submitHttpRequest( x );
Run Code Online (Sandbox Code Playgroud)
在这种情况下,提交HTTP请求远比作为正文的字符串重要,因此submitHttpRequst(x)更可取x.submitViaHttp()
不用说,这些并不是相互排斥的.你可能真的有
networkConnection.submitHttpRequest(x)
Run Code Online (Sandbox Code Playgroud)
你把它们混合在一起.重要的是你要考虑哪些部分被强调,以及你将如何传达给未来的代码读者.
要面向对象,请告诉,不要问:http://www.pragmaticprogrammer.com/articles/tell-dont-ask.
所以,Thing.DoSomething()而不是DoSomethingToThing(Thing n).
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |