首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
第八章 以行为为中心的程序设计
时间:
2014-11-28 18:20:54
阅读:
200
评论:
0
收藏:
0
[点我收藏+]
标签:
函数式编程
f#
实用函数编程
以行为为中心
第八章 以行为为中心的程序设计 本章介绍■ 用函数表示行为■ 扩展程序行为■ 处理函数和闭包■ 用决策树测试客户端在第七章,我们讨论了以数据中心的应用程序,知道了,设计函数式程序的第一步是定义相关的数据结构。还有一种情况,数据结构中包含了某种形式的行为,既可能是用户调用的命令,也可能是程序在某一点执行的任务。对这种情况,我们想统一处理,而不是为每一种行为的功能进行硬编码,因此,在数据结构的设计上,需要容易修改,不论是编译时,还是运行时。我们在第七章讨论过的以行为为中心的应用程序示例,是使用图形滤镜处理图像。应用程序需要保存滤镜,根据应用的需要添加或删除滤镜。在程序中表示滤镜时,我们可以使用列表来表示实际应用的滤镜集合;更难的问题是,我们应该使用什么数据结构来表示滤镜本身。显然,滤镜不是真正的数据,尽管它可能以某种方式进行参数化;相反,它表示行为,在函数式语言中表示行为,最简单的方法是使用函数。在第五章,我们已经知道,函数可以看作是值,因此,可以把函数与其他任何数据类型一样来处理。这样,用函数的列表来表示图形滤镜,是完全合理的数据结构。以行为为中心和以数据为中心之间的区别,更多的是概念上,而非技术上。理解设计的应用程序是哪种类型,对于创建适当的设计,是有帮助的。如果应用程序符合下列任何一个条件,可能应该设计成以行为为中心的应用程序:■ 事先不(不可能)知道所需功能的确切集。■ 用户或程序员应该能够轻松地添加新的行为。■ 程序可以使用外部插件进行扩展。■ 用户可以通过组合简单的功能,创建任务。从前面几章我们知道,以数据为中心的函数式程序设计,很大程度上依赖函数式数据类型,最重要的就是差别联合。在 C# 中,这不特别合乎习惯,所以,我们主要讨论 F#。另一方面,在 C# 3.0 中,使用函数表示简单的行为,是完全有可能。由于在 C# 中可以用 Func 委托表示函数,因此,这一章中的大多数示例,C# 和 F# 都能写。注意在一个相当庞大的应用程序中,通常会结合两种方法。大型的图形编辑器既支持矢量图形滤镜,也支持光栅图形滤镜,可能使用以数据为中心的方法来表示形状,以行为为中心的方法,把图形滤镜应用到图像。实现图形处的内容理超出本章范围,但可以在 http://www.functional-programming.net 找到图形处理的示例应用程序。在这一章,我们将使用一个不断扩展的示例,演示面向行为的应用程序;我们将开发一个应用程序,检查是否应该为客户提供贷款。
第八章 以行为为中心的程序设计
标签:
函数式编程
f#
实用函数编程
以行为为中心
原文地址:http://blog.csdn.net/hadstj/article/details/41577613
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!