当前位置:嗨网首页>书籍在线阅读

05-反思

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.2.2 反思

films2.c 程序还有些不足。例如,程序没有检查 malloc() 是否成功请求到内存,也无法删除链表中的项。这些不足可以弥补。例如,添加代码检查 malloc() 的返回值是否是 NULL (返回 NULL 说明未获得所需内存)。如果程序要删除链表中的项,还要编写更多的代码。

这种用特定方法解决特定问题,并且在需要时才添加相关功能的编程方式通常不是最好的解决方案。另一方面,通常都无法预料程序要完成的所有任务。随着编程项目越来越大,一个程序员或编程团队事先计划好一切模式,越来越不现实。很多成功的大型程序都是由成功的小型程序逐步发展而来。

如果要修改程序,首先应该强调最初的设计,并简化其他细节。程序清单17.2中的程序示例没有遵循这个原则,它把概念模型和代码细节混在一起。例如,该程序的概念模型是在一个链表中添加项,但是程序却把一些细节(如, malloc()current->next 指针)放在最明显的位置,没有突出接口。如果程序能以某种方式强调给链表添加项,并隐藏具体的处理细节(如调用内存管理函数和设置指针)会更好。把用户接口和代码细节分开的程序,更容易理解和更新。学习下面的内容就可以实现这些目标。