|
|
1
3
归根结底,这是一个领域建模的判断调用,这里没有一个确切的正确答案。重要的是每个选择如何影响代码的可读性和可维护性。
我倾向于使用静态成员来实现与类型高度“一致”的功能,这比任何特定的业务逻辑代码都要重要。思考
另一方面,我将使用一个模块来存储表示一些抽象过程的业务逻辑,如果所讨论的函数在某种程度上特定于该业务逻辑,并且在IT之外不太可能有用,那么我将使用模块中的函数,即使它仍然具有某种类型的特定性。例如,一个非常特定于用途的解析器,由于遗留的原因,只在这个工作流程中有用,它应该是一个let-bound函数,而不是一个静态成员,因为使用该类型的其他客户机通常不应该知道该函数。
在你的情况下,我会和静态成员一起去
否则,如果您只有一个模块,我们假设
|
|
|
2
2
您的示例非常简单,因此这里的任何一种方法都可能是好的。但是想象一下,添加更多的函数来获取季节参数。现在类型定义看起来非常混乱。此外,这些功能可能需要利用一些共享的值和功能,这些值和功能可以在季节模块中声明为私有的。 |
|
|
Thomas · 使类型别名在F中不可互换# 4 年前 |
|
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 8 年前 |
|
|
Soldalma · 我可以实例化包含顶级副作用值的类吗? 8 年前 |
|
|
matekus · F#-包含数字的字符串的自然排序 8 年前 |
|
|
matekus · F#类型匹配-无法创建映射或匹配记录 8 年前 |
|
|
Rob Lyndon · 未找到F#ProvidedTypes文件 8 年前 |
|
|
red-swan · 如何将intro ML.Net演示翻译为F#? 8 年前 |
|
|
jkone27 · F#-在编译时从字符串生成简单的空类型 8 年前 |