1.避免重复(比如NBS中工厂的抽象) 2.限制改动的影响(封装需求变化) 3.集中控制,集中修改 4.隐含数据结构(比如具体算法的实现) 5.建立代码资源库 6.提高可读性 7.提高可移植性 8.分隔复杂操作