如何将发生变化的东西与保持不变的东西分隔开—这一点对于库开说特别重要,库的创建者必须能自由的修改和改进代码,同时客户程序员不受到那些变动的影响。例如,库程序员在修改库内的一个类是,必须保证不删除已有的方法,因为那样客户程序员代码会出现断点。然而,对于数据成员,库的创建者怎样才知道哪些数据成员已受到客户程序员的访问呢?若方法属于某个类唯一的一部分,而且不一定由客户程序员直接使用,那么这种痛苦的情况是真实的。如果库的创建者想删除一种旧的方案,并置入新的代码,此时该肿么办呢?对那些成员进行的任何改动都可能中断客户程序员的代码。 如何将发生变化的东西与保持不变的东西分隔开—这一点对于库开说特别重要,库的创建者必须能自由的修改和改