1、对现实世界中的对象建模
2、对抽象对象建模
3、降低复杂度
4、隔离复杂度
5、隐藏实现细节
6、限制变化所影响的范围
7、隐藏全局数据
8、让参数传递更顺畅
9、创建中心控制点
10、让代码更易于重用
11、为程序族做计划
12、把相关操作放到一起
13、实现特定的重构
2、对抽象对象建模
3、降低复杂度
4、隔离复杂度
5、隐藏实现细节
6、限制变化所影响的范围
7、隐藏全局数据
8、让参数传递更顺畅
9、创建中心控制点
10、让代码更易于重用
11、为程序族做计划
12、把相关操作放到一起
13、实现特定的重构