纯功能转换适用于各种情况。
功能转换方法非常适合用于查询和作结构化数据;因此,它非常适合 LINQ 技术。 但是,与 LINQ 一起使用相比,功能转换的适用性要大得多。 任何主要侧重于将数据从一种形式转换为另一种形式的过程,都可能被视为功能转换的候选项。
此方法适用于乍看可能不是候选项的许多问题。 应将功能转换与 LINQ 结合使用或单独用于以下方面:
- 基于 XML 的文档。 任何 XML 方言的格式良好的数据都可以通过函数转换轻松操作。 有关详细信息,请参阅 XML 的功能转换。
- 其他结构化文件格式。 从 Windows.ini 文件到纯文本文档,大多数文件都具有一些结构,可用于分析和转换。
- 数据流式处理协议。 将数据编码为通信协议并从通信协议解码数据通常可以通过简单的功能转换来表示。
- RDBMS 和 OODBMS 数据。 关系数据库和面向对象的数据库(就像 XML 一样)是广泛使用的结构化数据源。
- 数学、统计和科学解决方案。 这些领域倾向于处理大型数据集,以帮助用户可视化、估算或实际解决复杂问题。
如重构 为纯函数中所述,使用纯函数是函数编程的一个示例。 除了其直接优势外,使用纯函数在从功能转换角度思考问题方面提供了宝贵的经验。 此方法还可以对程序和类设计产生重大影响。 当问题本身适用于如上所述的数据转换解决方案时,尤其如此。
尽管它们超出了本教程的范围,但受功能转换视角影响的设计往往以进程为中心,而不是以执行组件的形式处理,生成的解决方案往往作为一系列大规模转换来实现,而不是单个对象状态更改。
同样,请记住,C# 和 Visual Basic 支持命令性和功能方法,因此,应用程序的最佳设计可能会同时包含这两者的元素。