问大家一个关于界面架构设计问题

小郭一号 发布于 2014/03/31 00:01
阅读 178
收藏 1

现在我想要开发一个Windows上的(类似)oschina客户端,其中包括讨论区、代码分享、博客三块,需要一个tabctrl进行切换。tabctrl的上方是一个搜索条,包括一个文本控件(用于输入搜索关键字)和一个搜索按钮。

按照这个需求,我设计了这样的类图:CTabCtrl(不要纠结匈牙利命名,我就是做MFC的)包含了一系列CContentWnd,CContentWnd是讨论区窗口、代码分享窗口、博客窗口三者的基类,三者都有一个Onsearch(string)的函数,能够按照关键字进行搜索,当然这个函数在CContentWnd里是一个虚函数,用来实现多态。顶部的搜索条(包括文本和按钮)是一个Wnd,点击“搜索”后,从tabctrl获取当前显示的ContentWnd,然后调用Onsearch(string)响应搜索,具体的搜索在子类中实现,tab和搜索条不用管。

问题:

1.这个设计好不好?如果不好请给出更好的设计并说明理由。

2.我想在客户端版本2.0想加入如下功能:点击代码分享tab的时候,搜索条多出一个“编程语言”的下拉列表,点击博客tab的时候,搜索条多出一个“博主”的文本框,点击搜索按钮时能够进行相应搜索功能。针对此功能扩展,类结构应该如何改动(可以根据问题1中自己设计的类结构基础上改动)?

3.有没有介绍如何解决这类问题的书籍?如果推荐《设计模式》之类抽象的书的话,请把上两个问题答了并写出使用了哪种设计模式。

希望对设计比较在行的人解答一下,谢谢!

加载中
0
铭asniler
理解没错的话,问下面问题: 其实下面的3个tab,从应用角度讲实际上是搜索结果的筛选,而不是根据不同tab做不同搜索,是吗?如果是的,那么应该从整体应用需求出发重新考虑现有类的设计结构,这样做出的设计会最贴合需求,也不容易出问题。目测你的设计本身已没什么大问题,可是再要进一步探究,就应从需求到模型的对应方式去考虑了,而这需要对需求本身去重新抽象重新思考。希望能对你有用
小郭一号
小郭一号
因为三个tab搜索的内容不一样,没办法混在一起然后筛选,只能实现不同的搜索。
小郭一号
小郭一号
能稍微具体点吗
返回顶部
顶部