博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C语言接口与实现:创建可重用软件的技术》一2.6 扩展阅读
阅读量:6322 次
发布时间:2019-06-22

本文共 1074 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《C语言接口与实现:创建可重用软件的技术》一书中的第2章,第2.6节,作者 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 扩展阅读

自20世纪50年代以来,过程和函数库的重要性已经是公认的。[Parnas 1972]一文是一篇典型的论文,讨论了如何将程序划分为模块。该论文的历史已经将近40年,但当今的程序员仍然面临着该文所考虑的问题。

C程序员每天都使用接口:C库是15个接口的集合。标准输入输出接口,即stdio.h,定义了一个ADT FILE,以及对FILE指针的操作。[Plauger,1992]一书详细描述了这15个接口及适当的实现,其叙述方式大体上类似于本书讨论一组接口和实现的方式。

Modula-3是一种相对较新的语言,从语言层面支持接口与实现相分离,本书中使用的基于接口的术语即源自该语言[Nelson,1991]。未检查和已检查的运行时错误的概念,和ADT的T表示法,都是借鉴Modula-3。[Harbison,1992]是介绍Modula-3的一本教科书。[Horning等人,1993]一书描述了其Modula-3系统中的核心接口。本书中一些接口改编自该书中的接口。[Roberts,1995]一书使用了基于接口的设计,作为讲授计算机科学入门课程的编排方式。

断言的重要性是公认的,在一些语言如Modula-3和Eiffel [Meyer,1992]中,断言机制是内建在语言中的。[Maguire,1993]一书用一整章的篇幅讨论C程序中断言的使用。

熟悉面向对象编程的程序员可能认为,本书中大部分ADT都可以用面向对象程序设计语言中的对象实现(可能实现得更好),如C++ [Ellis and Stroustrup,1990]和Modula-3。[Budd,1991]一书是面向对象程序设计方法学的入门介绍,还包括一些面向对象程序设计语言如C++的内容。本书中说明的接口设计原理同样适用于面向对象语言。例如,用C++语言重写本书中的ADT,对从C语言切换到C++的程序员来说是一个很有用的练习过程。

STL(C++标准模板库,Standard Template Library)提供了与本书所述类似的ADT。STL充分利用了C++模板来针对具体类型实例化ADT(参见 [Musser and Saini,1996])。例如,STL为vector类型提供了一个模板,可针对int、string等类型分别实例化出对应的vector类型。STL还提供一套函数,来处理由模板生成的类型。

转载地址:http://yxtaa.baihongyu.com/

你可能感兴趣的文章
清除代码异味
查看>>
【转】从知乎上看到“全栈开发者”讨论之后的自黑
查看>>
Java-IO流
查看>>
Linux入门-6 Linux网络基本配置
查看>>
洗礼灵魂,修炼python(22)--自定义函数(3)—函数作用域,闭包
查看>>
newcoder Tachibana Kanade Loves Probability(小数点后第k位)题解
查看>>
vue项目未加载完成前显示loading...
查看>>
windows 与linux 下用C++读取sqlite实现文件复制(一)
查看>>
IOS 5 中为什么outlet 输出口总是设定成弱类型(weak)呢
查看>>
Read-Copy Update (RCU)
查看>>
基于centos系统,系统基本检查及巩固
查看>>
在以太坊上如何取消/修改已经提交的交易
查看>>
Android IOS WebRTC 音视频开发总结(十九)-- kurento
查看>>
reshape2 数据操作 数据融合( cast)
查看>>
第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)
查看>>
八、主从复制
查看>>
深入理解RunLoop 整理资料
查看>>
LabVIEW将字符串转化为十进制
查看>>
欢迎光临
查看>>
20131205
查看>>