抽象
2016-03-28 19:46
197 查看
设计程序时,会经常发现很多代码都是大同小异的。为了让程序更简洁,也便于代码的修改,实现代码复用是非常重要的。
将代码段的重复部分提取出来,差异部分作为新函数的参数。这个过程就称作抽象,根据程序代码的实际用途,也可以分为函数抽象和数据抽象。
对相似度足够高的代码,把相同的部分提取出来作为新函数。然后标出其中的不同之处,再将这些不同列作参数,并根据这些参数调整新函数。
编写函数的说明。
测试新函数。
这是函数抽象的步骤,数据抽象也是类似。
... distill the problem statement into a signature, a purpose statement, an example, and a stub definition.
找出匹配的抽象。匹配的意思是,该抽象的目标陈述囊括了目标函数(more general),而且签名相类似,
写出函数模版。
设计新函数内部的局部辅助函数。DrRacket里需要用到
测试。
以上只是理论,具体操作可以看Composing Programs。
将代码段的重复部分提取出来,差异部分作为新函数的参数。这个过程就称作抽象,根据程序代码的实际用途,也可以分为函数抽象和数据抽象。
如何设计抽象
寻找代码的相似之处。对相似度足够高的代码,把相同的部分提取出来作为新函数。然后标出其中的不同之处,再将这些不同列作参数,并根据这些参数调整新函数。
编写函数的说明。
测试新函数。
这是函数抽象的步骤,数据抽象也是类似。
如何使用抽象
根据实际问题,写出函数的函数签名,目标陈述,函数存根,测试样本。... distill the problem statement into a signature, a purpose statement, an example, and a stub definition.
找出匹配的抽象。匹配的意思是,该抽象的目标陈述囊括了目标函数(more general),而且签名相类似,
写出函数模版。
设计新函数内部的局部辅助函数。DrRacket里需要用到
local表达式.
测试。
关于Python中的抽象
Python和DrRacket有很大的不同。以上只是理论,具体操作可以看Composing Programs。
相关文章推荐
- poj 2104 K-th Number
- img与容器下边界的空隙(缝隙) img与div(block类型元素)下边界有距离(或者叫缝隙、空隙)的解决方法
- 为某个软件分配管理员权限
- 第四周总结
- 第5周-项目2-游戏中的角色类(2)
- HDOJ 5650-so easy
- OC特有的方法(点语法,)
- 三角形1
- 顺序表的基本操作(new)
- 10GBase-T标准
- bzoj4246 两个人的星座 计算几何
- (转载)HOG特征(Histogram of Gradient)总结
- Java产生唯一的随机数
- 托普进销存 智慧版v1.3.0
- 可变数据结构的编程
- hdu 1260 Tickets (dp)
- http://www.prayer-laputa.com/blog/archives/588
- LeetCode笔记:237. Delete Node in a Linked List
- 计算机组成 数制
- codeforces 653E. Bear and Forgotten Tree 2 连通问题