7.6 第七章小节
如何以与我们想要使用的数据匹配的方式,处理数据和设计数据结构,是函数式程序设计的一个重要部分。在这一章,通过讨论 F# 记录类型,我们完成了基本的函数式数据类型的工具集。我们使用记录、列表,和递归的差别联合,一起来设计和实现用于处理文档的应用程序。
函数式编程在处理数据过程中,经常使用多种表示方法,我们的应用程序提供了这样一个示例。一种表示形式(元素的平面列表),用来简单地绘制文档,而另一种表示(部件的层次),对于构建和操作文件更有用的。我们在这两种表示形式之间实现转换,因此,应用程序可以从 XML 文件中读取文档,以分层次的形式对其进行处理,然后,再使用平面形式绘制。
我们还讨论了设计模式,如果想要在 C# 中实现相同的问题,可能需要它。特别是,可以看到复合与装饰模式,与我们在文档数据结构中使用的可选值密切对应。最后,我们讨论了使用访问者模式,这是一种 C# 添加新的函数方法,用来处理已有的数据结构。
这一章主要是以数据为中心的程序,我们首先设计数据结构。还有主要关心行为的程序。当然,在更复杂的应用程序,这两种方法要结合起来。在下一章,我们就会把注意力放到以行为为中心的应用程序上。