降低复杂性

避免重复代码段

限制改动带来的影响

隐含顺序

改进性能

进行集中控制

隐含数据结构

隐含指针操作

隐含全局变量

促进重新使用代码段

计划开发一个软件族

改善某一段代码可读性

改善可移植性

分割复杂操作

独立非标准语言函数的使用

简化复杂的布尔测试