18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 营销百科 > 虚拟函数实例展示

虚拟函数实例展示

时间:2023-03-26 13:00:01 | 来源:营销百科

时间:2023-03-26 13:00:01 来源:营销百科

虚拟函数实例展示:下面通过一个简单的实例来展示这一优点。

假设有一个绘图程序允许用户在一个画布上绘制各种图形,如三角形、矩形和圆等,很自然地抽象图形的继承体系,如图2-2所示。

这个图形继承体系的设计大致如下:

为简单起见,让每个Shape对象都支持'绘制'和'旋转'操作,每个Shape的派生类对这两个操作都有自己的实现:

再来考虑这个图形继承体系的使用,这里很自然的一个使用者是画布,设计其类名为'Canvas':

Canvas类中维护一个包含所有图形的shapes,Canvas类在处理自己的业务逻辑时并不关心shapes实际上都是哪些具体的图形;相反,如①处和②处所示,它只将这些图形作为一个抽象,即Shape。在处理每个Shape时,调用每个Shape的某个操作即可。

这样做的一个好处是当图形继承体系发生变化时,作为图形继承体系的使用者Canvas而言,它的改变几乎没有,或者很小。

比如说,在程序的演变过程中发现需要支持多边型(Polygon)和贝塞尔曲线(Bezier)类型,只需要在图形继承体系中增加这两个新类型即可:

而不必修改Canvas的任何代码,程序即可像以前那样正常运行。同理,如果以后发现不再支持某种类型,也只需要将其从图形继承体系中删除,而不必修改Canvas的任何代码。可以看到,从对象继承体系的使用者(Canvas)的角度来看,它只看到Shape对象,而不必关心到底是哪一种特定的Shape,这是面向对象设计的一个重要特点和优点。

关键词:展示,实例,函数,虚拟

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭