IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

浅谈 C 语言中模块化设计的范式

云风的 BLOG 2010-03-03 09:14:39 累计浏览 3,052 次
本机暂存

今天继续谈模块化的问题。这个想慢慢写成个系列,但是不一定连续写。基本是想起来了,就整理点思路出来。主要还是为以后集中整理做点铺垫。

我们都知道,层次分明的代码最容易维护。你可以轻易的换掉某个层次上的某个模块,而不用担心对整个系统造成很大的副作用。

层次不清的设计中,最糟糕的一种是模块循环依赖。即,分不清两个模块谁在上,谁在下。这个时候,最容易牵扯不清,其结果往往是把两者看做一体去维护算了。这里面还涉及一些初始化次序等繁杂的细节。

其次,就是越层的模块联系。当模块 A 是模块 B 的上层,而模块 B 又是模块 C 的上层,这个时候,让模块 C 对模块 A 可见,在模块 A 中有对 C 导出接口的直接调用,对于清晰的设计是很忌讳的一件事。虽然,我们很难完全避免这个问题,去让 A 对 C 的调用完全通过 B 。但通常应尽力为之。(注:以后写书的话,我争取补充一些实际的例子来说明)不过,对语言不原生支持的数据类型,以及基础设施,但却有必要创造出来给系统用的。可以有些例外。比如内存管理,log 管理,字符串

同分类推荐文章

  1. 如何写好设计文档? (2026-06-23 08:00:00)
  2. Designing With Uncertainty: How AI Supercharges Probabilistic Thinking (2026-06-16 23:00:00)
  3. The Benefits Of Cognitive Inclusion In UX Research (2026-06-10 18:00:00)

查看更多 设计 文章 →

建议继续学习

  1. 从“架构师书单”讲开去 (累计阅读 8,931)
  2. 从C语言的Hello World说起 (累计阅读 7,646)
  3. 为什么C语言需要函数声明 (累计阅读 5,720)
  4. C语言的那些个关键字们 (累计阅读 5,633)
  5. Nginx启动初始化过程(一) (累计阅读 5,556)
  6. PHP内核介绍及扩展开发指南―Extensions 的编写 (累计阅读 5,501)
  7. do{...}while(0)的意义和用法 (累计阅读 5,119)
  8. 关于架构的一句话,还有一个实例 (累计阅读 4,706)
  9. PHP内核介绍及扩展开发指南―高级主题 (累计阅读 4,665)
  10. 编写python的C语言扩展 (累计阅读 4,417)