*如果你的工作经常要用到一些特殊的工具,你可以设计自己的库
*一个库应该有一个主题。一个库中的函数都应该是处理同一类问题。如标准库iostream包含输入输出功能,cmath包含数学运算函数。我们自己设计的库也要有一个主题。
*设计一个库还要考虑到它的通用性。库中的功能应来源于某一应用,但不局限于该应用,而且要高于该应用。在某一应用程序中提取库内容时应尽量考虑到兼容更多的应用,使其他应用程序也能共享这个库。
库的设计和实现
*设计库的接口:
-库的用户必须了解的内容,包括库中函数的原型、这些函数用到的符号常量和自定义类型
-接口表现为一个头文件
*设计库中的函数的实现:表现为一个源文件
*库的这种实现方法称为信息隐藏
程序设计的复杂性
描述炮出一杯茶需要哪些步骤
*烧水
*把茶叶放到茶壶里
*水烧开后倒入茶壶
*等待5分钟
*把茶倒进杯子
*加牛奶
*喝
开始问这样的问题(这很重要!)
*烧水?
*水哪来的?
*热水壶在哪里?
*你怎么把水倒进热水壶?
*你怎么知道热水壶壶里要倒多少水?
*如果没有水/热水壶/电怎么办呢?
*假如加水传感器失效怎么办?
*假如煮水传感器失效怎么办?
*茶叶放到茶壶里?
*茶壶在哪里,如果没有茶壶怎么办?烧水之前我们应该考虑到这些问题吗?
*茶叶在哪里,要用哪一种茶叶?我们是否应该先问清楚,或许如果没有对应的茶叶,我们甚至都不应该开始泡茶?
*关于加水和传感器也可以有类似的问题要问
*倒开水?
*你确定水已经开了么?你怎么能确保“倒水”的机器从热水壶那收到“烧水完成”的信号呢?
*你如何确保倒水的机器知道热水壶在哪里?
*如果热水壶在倒水的过程翻了怎么办呢?
时间: 2024-10-13 05:13:11