首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看不懂这样的类设计,该如何解决

2012-03-08 
看不懂这样的类设计在研究别人写的代码时,发现这样一种类设计。一个基类,如Node。从Node类派生出两个子类Ele

看不懂这样的类设计
在研究别人写的代码时,发现这样一种类设计。
一个基类,如Node。从Node类派生出两个子类Element和Document,但这两个类没有任何数据成员,只有一些方法。程序里可以直接把Node指针类型强制转换成Element或Document指针。
以前没有看到过这样的设计,觉得很奇怪。印象里标准的hiberarchy类结构也不是这样的。请大家帮助分析一下这样做的目的。


[解决办法]
如果有这样的需要,
还不如在基类node中声明有些 虚函数,不需要实现,
然后的两个派生类中,根据实际特性重写这些虚函数。

然后在程序中可以使用基类指针访问到正确的函数方法 ...
通过类型的强制转化并不太安全 。
[解决办法]
可能是基类node实现的太复杂了,接口函数耦合度太高,不易分开,于是用这个方法来区分两类不同的概念。虚函数的实现会损失效率。
[解决办法]
主要是出于效率和使用方便,和void*差不多。如果这样的Node能够约束在一个设计的内部和局部,那也不是什么坏事。

[解决办法]
就起一个void *的效果。基本上,不称为好设计,可用而已。

热点排行