>有3个独立的工具,每个工具都有自己的视图.所有视图都作为不可关闭的选项卡集成在主窗口中.我准备了3个视图:Tool1View,Tool2View,Tool3View
>每个工具都可以执行由用户操作触发的某些任务.但这些不是数据库相关的操作(列表/添加/修改……) – 至少用户不会在gui元素中添加/修改/列表记录.
我想在两个类中实现每个工具:
>第一类ToolXView实现小部件和与gui更改相关的所有任务.
>第二类ToolX实现应用程序逻辑.此类的成员函数由View类触发.每当这个类必须更新GUI元素时,它会在View类中引用专门的函数.因此,不会从这里直接调用小部件.
View类和逻辑类将相互链接以允许双向通信.
现在我想知道这是否是一个好方法.请根据您的经验告诉我.
>我打算将指向逻辑类的指针封装为视图类的属性,并将指向视图类的指针封装为逻辑类的属性.这样我计划对它们进行整理.
>我应该使用信号/插槽来提供通话还是只调用成员函数?
>我必须在Qtsql数据库中存储一些数据.我应该为数据库访问提供单独的类.或者只是在Logic类中实现sepereate成员函数?
>你如何命名你的课程.这个方案是好还是我应该改变它?
感谢帮助.感谢您的评论.
解决方法
1& 2 – 在上面的链接中,您将看到mvc架构的UML图.关于它,我将视图信号连接到控制器方法,然后从控制器调用视图方法.
3 – 关于数据库访问我会在您的架构中添加一个专门用于数据访问的数据访问部分.您可以使用接口来定义数据访问对象签名,然后在数据库的专用类中实现它(这样您就可以在不修改整个应用程序的情况下更改数据位置).
4 – 你的班级命名似乎很好.但我会更进一步,打电话给班级:
>对于视图:ClassNameView
>对于Controller:ClassNameController
>对于DataAccessObject:ClassNameDAO
> Model:ClassName(和接口的IClassName)
希望有所帮助