浅谈 C 语言中模块化设计的范式
浏览:2085次 出处信息
今天继续谈模块化的问题。这个想慢慢写成个系列,但是不一定连续写。基本是想起来了,就整理点思路出来。主要还是为以后集中整理做点铺垫。
我们都知道,层次分明的代码最容易维护。你可以轻易的换掉某个层次上的某个模块,而不用担心对整个系统造成很大的副作用。
层次不清的设计中,最糟糕的一种是模块循环依赖。即,分不清两个模块谁在上,谁在下。这个时候,最容易牵扯不清,其结果往往是把两者看做一体去维护算了。这里面还涉及一些初始化次序等繁杂的细节。
其次,就是越层的模块联系。当模块 A 是模块 B 的上层,而模块 B 又是模块 C 的上层,这个时候,让模块 C 对模块 A 可见,在模块 A 中有对 C 导出接口的直接调用,对于清晰的设计是很忌讳的一件事。虽然,我们很难完全避免这个问题,去让 A 对 C 的调用完全通过 B 。但通常应尽力为之。(注:以后写书的话,我争取补充一些实际的例子来说明)不过,对语言不原生支持的数据类型,以及基础设施,但却有必要创造出来给系统用的。可以有些例外。比如内存管理,log 管理,字符串
建议继续学习:
- 了解模块化开发 (阅读:2880)
- 基于 SeaJS 模块化开发的一个实例 (阅读:2615)
- 页面模块化(设想) (阅读:2244)
- 样式的作用域──页面重构中的模块化设计(一) (阅读:2276)
- C 语言对模块化支持的欠缺 (阅读:1964)
- 页面模块化实现的条件和基本实现思路 (阅读:1945)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:正则转义符汇总
后一篇:C 语言对模块化支持的欠缺 >>
文章信息
- 作者:云风的 BLOG 来源: 云风的 BLOG
- 标签: 模块化
- 发布时间:2010-03-03 09:14:39
近3天十大热文
- [2528] 代理的加密部分
- [1329] 创业笔记 | 从0到1开公司是什么体验
- [649] vimgtd-在vim(gvim)中实现GT
- [574] 查找第K小的元素
- [73] Oracle MTS模式下 进程地址与会话信
- [65] Go Reflect 性能
- [64] 如何拿下简短的域名
- [64] 【社会化设计】自我(self)部分――欢迎区
- [63] 图书馆的世界纪录
- [61] android 开发入门