今天的项目中,因为这个数据存储的问题搞得很麻烦,因为原先定义的存储是在具体的控件中,这样导致后面对于这个数据的读写都会很麻烦。
同时因为信号和槽的一些限制,就导致每一个类中都采用了大量的信号和槽,这处理起来真的太麻烦了。
后来我花了一个下午重构了一下底层的通信逻辑,将数据的存储直接放在了“用于显示”的界面中,然后原先的控件仅仅用来提示它们进行了什么操作,省掉了大量的信号,以及信号和槽的连接。同时对于数据的存储也都变得很直接,不再通过大量的转发才能实现这个功能。
这个是有前提的啊,就是需要展示的数据并不多的情况下,对于这部分数据,可以直接存放在用于展示的界面中,比如用一个向量表存储就行了。
对于其他的数据,可以通过文件的方式进行保存。
这种方法我觉得很适合“实时性”要求比较高的地方,适用于那种不怎么随时需要对比以前的数据的那种情况。
在这种情况下,就可以不太在意其他的数据,仅仅要求所展示的数据能够实时刷新就行。
总结:
一定要事先写一个大纲出来,标明所使用的基本逻辑,并且事先大体规划好所用到的信号等,无论这个功能有多简单。
越简单越好,一个控件的功能越简单,那么无论是对于它的处理还是后面可能进行的修改都会很方便。