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

问大家一个设计细节有关问题

2012-03-06 
问大家一个设计细节问题最近在设计一个GUI框架。在消息分发那里,有点难以选择。当窗口分发消息的时候,是应该

问大家一个设计细节问题
最近在设计一个GUI框架。
在消息分发那里,有点难以选择。
当窗口分发消息的时候,是应该 把消息打包然后调用UI控件的某个特定接口呢 还是每个事件都调用UI控件的特定接口呢?
方案1.实现如下
case WM_MOVE:
{
  event.msg = UIMOUSE_MOVE;
  UI->handleEvent(event);
}
case WM_KEYDOWN:
{
  event.msg = UI_KEYDOWN;
  UI->handleEvent(event);
}


方案2 实现如下

case WM_MOVE:
{
  UI->onMouseMove(pt);
}
case WM_KEYDOWN:
{
  UI->onKeyDown(,,,,);
}
个人认为
方案1,扩展控件只需用实现一个方法,接口整洁。handleEvent里面用case 选择自己感兴趣的去处理。
方案2,此方法局限太大。当扩展的时候,要重实现很多接口。另外不停的从基类虚-查找到具体类的接口,效率不怎么雅观。(虽然实际上看不出来)

代码也没增加或者减少。两者起的效果是一样的。
单纯从扩展,或者应该,不应该的角度去考虑。哪种方案相对比较好呢?

[解决办法]
第一种

热点排行