《软件开发中的界面设计与多样性考量》
1. Visual Basic 继承性探讨
在软件开发里,继承性是面向对象编程的关键特性。要是 Visual Basic 具备继承性,我们就能编写一个类,赋予它属性和方法,再编写一个派生类,无需编写额外代码就能访问父类的所有属性和方法。例如,若父类有 Generate 方法,子类对象会自动拥有相同方法。若在子类中编写 Generate 过程,会覆盖父类的该方法,不过也能在子类的 Generate 过程里调用父类的 Generate 代码。
其他面向对象语言有类似功能,能创建任意数量的派生类,对父类代码中的单个过程修改,会影响所有派生类(除非在子类中重写该过程且不调用父类方法)。Visual Basic 虽无此功能,但可添加。
若在开发子类前能完成父类的所有细节,可复制父类的所有源代码作为子类的基线代码。虽会有大量重复代码,增大可执行文件体积,但从设计角度能实现依赖继承的设计。然而,这会带来维护难题,难以修改父类代码,或需在每个子类代码中追踪并修改副本。就像 Sheridan 公司在 1995 年为 Visual Basic 4.0 开发的 ClassAssist 插件,用于接管源代码管理。
另一种方法是让每个父类从标准模块(“影子”模块)调用大部分代码,并传递当前实例的对象引用。子类影子模块可调用父类影子模块中的所需过程,解决代码冗余问题,但需策略保护封装性,且可能导致严重的开销和维护难题。
其实,可轻易弥补 Visual Basic 缺乏继承性的不足,有时没有继承性反而更好。在一些项目中,过
超级会员免费看
订阅专栏 解锁全文
1426

被折叠的 条评论
为什么被折叠?



