本节书摘来自异步社区《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还提供一套函数,来处理由模板生成的类型。

《C语言接口与实现:创建可重用软件的技术》一2.6 扩展阅读相关推荐

  1. C语言接口与实现:创建可重用软件的技术

    关注.星标公众号,直达精彩内容 来源:技术让梦想更伟大 作者:李肖遥 大家后,我是肖遥,静默的两天,终于可以在家里安静的坐下来,思考和躺平了. 最近发现一本好书,<C语言接口与实现(创建可重用软 ...

  2. 《C语言接口与实现:创建可重用软件的技术》一1.5 习题

    本节书摘来自异步社区<C语言接口与实现:创建可重用软件的技术>一书中的第1章,第1.5节,作者 傅道坤,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.5 习题 ...

  3. C语言接口的封装和设计专题

    C语言接口的封装和设计专题 Win32环境下动态链接库(DLL)编程原理 导出和导入函数的匹配 与DLL模块建立链接 使用符号名链接与标识号链接 编写DllMain函数 模块句柄 应用程序怎样找到DL ...

  4. python学习第八天---用Django框架创建可重用注册登录系统

    python学习第八天---用Django框架创建可重用注册登录系统 实现的功能 项目开始前的整体规划 搭建环境完成基础配置 创建app 更改语言和时区 数据库表生成 启动开发服务器 浏览器访问,检测 ...

  5. 创建一个抽象类动物类以及以下几个接口:进食的接口、睡觉的接口、思考的接口、说话的接口。分别定义猫类、人类、鸟类继承动物类并选择实现上述的接口,并创建实例验证。

    创建一个抽象类动物类以及以下几个接口:进食的接口.睡觉的接口.思考的接口.说话的接口.分别定义猫类.人类.鸟类继承动物类并选择实现上述的接口,并创建实例验证. 上代码 package ThirdDay ...

  6. Android系统JNI使用(JAVA调用C语言接口)一

    目录 第一篇:Android系统JNI使用(JAVA调用C语言接口)一 什么是JNI JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信主要是 ...

  7. Python的C语言接口 - 详解官方文档

    Python的C语言接口 - 详解官方文档 索引 Python的C语言接口 - 详解官方文档 介绍 / Introduce 代码标准 / Coding Standards 包含文件 / Include ...

  8. Swift3.0语言教程使用编码创建和初始化字符串

    Swift3.0语言教程使用编码创建和初始化字符串 使用编码创建和初始化字符串 创建和初始化字符串除了可以使用上文中提到的方法外,还可以使用init(coder:)方法,此方法一般不常使用,其语法形式 ...

  9. Swift3.0语言教程使用指针创建和初始化字符串

    Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...

最新文章

  1. pytorch中tensor.mul()和mm()和matmul()
  2. python编程基础与应用-Python程序设计基础与应用
  3. nodejs中httpserver的安装和使用
  4. ReactiveCocoa个人记录
  5. 进程控制3--signal
  6. 鼠标悬停显示不同内容_数字标牌的A到Z:C代表CMS(内容管理系统)
  7. 《数字图像处理 第三版》(冈萨雷斯)——第八章 图像压缩
  8. 第68天-内网安全-域横向 PTHPTKPTT 哈希票据传
  9. pyaudio 声音处理
  10. Linux系统命令 - 查看内存使用情况
  11. 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
  12. 最全分布式文件系统 HDFSYARNMapReduce详讲
  13. 让别人关机!(VB语言)
  14. ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?
  15. 成功解决笔记本重装系统后没有无线网
  16. 原生JS获取body
  17. 图片热区自适应和设置热区边框
  18. JavaScript 数组之every
  19. 计算机管理员没设密码忘了怎么办,没有电脑路由器密码忘记了怎么办?
  20. 【Matlab优化预测】布谷鸟算法优化灰色模型预测【含源码 1244期】

热门文章

  1. 笑死,别再黑程序员了好吗? | 每日趣闻
  2. Isolation Forest原理总结
  3. 安卓kernel自主唤醒系统方法—设置alarm
  4. 深入理解javascript异步编程障眼法h5 web worker实现多线程
  5. Oracle:PL/SQL 中如何使用Array
  6. MediaPlayer开发全解析
  7. Java泛型深入题目
  8. 配置2008的网络与工作组环境
  9. 点击量终于突破十万大关,以示庆贺,耶!!!
  10. Laravel之Eloquent ORM