gpt4 book ai didi

oop - 命令式与疑问式方法

转载 作者:行者123 更新时间:2023-12-04 07:04:33 24 4
gpt4 key购买 nike

在实现类时,返回方法的值(询问式)还是直接在方法内操作类属性(命令式)是更好的做法。

例如,我有一个类,它构建一个要输出到 CSV 文件的字符串。我可能会这样做:

String output = ""

String records[] = //list of record strings

void extract()
extractHeader()
extractRecords()


void extractHeader()
output += "FirstName,LastName,PhoneNumber"


void extractRecords()
For Each record In Records
output += records.toString()

或者,我可能会这样做:
void extract()
output += extractHeader()
output += extractRecords()


string extractHeader()
// return header string


string extractRecords()
// return records as string

这仅仅是个人喜好的问题,还是有普遍接受的最佳实践指南?

干杯,

安德鲁

最佳答案

Separation of Concerns是我的指标(它也不是一个硬性指标)。这通常与保持程序直接相关DRY .

这是我看到的两个问题:逻辑和用法。 extractRecords的核心逻辑是运行一个for循环。如果您想再次重用该逻辑,现在您的第一个选项将该逻辑与该逻辑的非常具体的应用程序/用法非常耦合(而不是 loosly-coupled )。

这种想法就是为什么我会默认总是倾向于函数式编程,而不是任何需要状态或面向对象的东西,如果可以的话。

同样相关的,也许只是同一件事的不同措辞是这篇文章:"tell, don't ask" .

关于oop - 命令式与疑问式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com