孰优孰劣
上面我们讨论了实现消息映射的两种方案:
1. 使用消息映射表
2. 使用虚函数
在效率上我们可以看出前者胜出,内存使用上后者胜出(前提是后者不使用查找表替换switch...case)。
所以看其来大家各有优劣。
使用消息映射表必然要使用宏,除非事先这些宏已经制作完成,否则如果写这样的宏必然是件非常痛苦的事情。所以消息映射表的方式通常被用在Framework的实作,比如MFC等。
而虚函数的制作相当方便,所以如果不是制作Framework的话,那么这个方案也是不错的。
更进一步的讨论:允许消息横流
作为Framework的实作者,你或许还需要让消息拥有横流的机会,即流向子系统而非父类。
上面我们讨论了实现消息映射的两种方案:
1. 使用消息映射表
2. 使用虚函数
在效率上我们可以看出前者胜出,内存使用上后者胜出(前提是后者不使用查找表替换switch...case)。
所以看其来大家各有优劣。
使用消息映射表必然要使用宏,除非事先这些宏已经制作完成,否则如果写这样的宏必然是件非常痛苦的事情。所以消息映射表的方式通常被用在Framework的实作,比如MFC等。
而虚函数的制作相当方便,所以如果不是制作Framework的话,那么这个方案也是不错的。
更进一步的讨论:允许消息横流
作为Framework的实作者,你或许还需要让消息拥有横流的机会,即流向子系统而非父类。
本文探讨了消息映射表与虚函数两种实现方式的优缺点,前者在效率上有优势,后者则在内存使用上表现更好。文章还讨论了它们在实际应用中的不同场景,如Framework开发中消息映射表的使用及其带来的便利性和挑战。
176万+

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



