11.2.3 提高可扩充性

更新于 2026年10月10日 版权声明
11.2.3 提高可扩充性

重用准则提高了扩充性。另外,下面的面向对象的原理也提高扩充性。

(1)封装类:如果某类的内部结构对其他类是隐藏的,则可以封装该类。只有该类上的方法才能处理它的实现。

OOP风格与传统风格的本质区别在于选择机制。选择机制改变了系统设计者选择与相应操作匹配的数据类型的负担,而在传统设计中,这是由用户自己完成的。然而,这一微小的变化体现了OOP技术的全部力量。

选择机制是一个简单而有效的系统构建工具,它允许系统设计者清楚地指示他们提供的可见界面,以便用户(应用程序程序员)可以看到对象提供的所有操作,而不是数据。从用户的角度来看,对象提供了一组眼睛服务,而服务的具体实现是对用户的屏蔽。这是真正的封装。如何实现对象中的操作以及如何管理内部数据都封装在流程接口中,用户可以通过该接口访问对象。对应用程序员来说封装意味着他只能看见对象所提供的服务,而看不见服务的具体实现,只有系统设计员才能看见对象的私有数据及其过程。

(2)封装数据结构:不能从方法得到数据结构。内部数据结构是针对方法的算法的。如果从方法中得到数据结构,则限制了以后改变算法的灵活。

(3)避免遍历多条链或方法:一种方法应该只包含对象模型中有限的知识。

(4)避免对象类型上的情况语句:使用方法来代替情况语句。情况语句可以用来测试对象的内部属性但不能用来选择基于对象类型的行为。(https://www.daowen.com)

(5)区分公共操作和私有操作:公共操作是类外部可见的且具有明晰的接口。一旦其他类需要使用公共操作,则对它的接口的改变花费太大。因而,必须慎审定义公共操作。私有操作是内部的且用来帮助实现公共操作,私有操作可以删除或改变。

将操作分成公共和私有两类,主要的原因在于:

①不必要使用户卷入类的细节中;

②由于私有方法取决于内部的实现策略,所以当实现改变时,方法设计者可能改变参数的数目和类型;

③私有方法增加了模块度。方法的内部细节只影响该类中的方法,而不影响其他方法。

同样,属性和联系也可分成公有的与私有的。另外,公有属性和联系又可以具有只读权限或只写权限两种。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)