
47
第 3 章
模块设计
多站在
API
驱动设计和文档驱动设计的角度进行思考,就能写出更多具有
可用性的模块。你可能会说内部构造没那么重要,“只要接口能承受,可以
把任何想要的东西混在一起!”然而,有一个可用的接口只是问题的一个
方面,它对保持应用程序的可维护性几乎没有什么用。设计合理的模块内
部结构有助于保持代码的可读性和意图的清晰性。本章将讨论在编写具有
可扩展性却不超出当前需求范围太多的模块时需要考虑些什么问题。我们
将更深入地讨论
CRUST
原则,最后还会阐述当模块随着时间的推移变得
越来越臃肿且复杂时该如何进行修剪。
3.1
构建模块
要实现整洁的(
clean
)模块设计,关键在于要实现一组小且作用唯一的函数。
为唯一用途而编写的函数,即使其所属的模块增长到
500
行代码,仍然具
有良好的可扩展性,因为它们在所属模块中并未引入多少组织结构上的复
杂性。小函数发挥的作用不一定逊于大函数,而且前者在进行组合时更有
优势。