思考QT的MV对开发简化
人类软件开发的动向是什么呢?在这有两个值得关注的问题:
1.人类开发的软件一大部分是将人类从繁重和复杂中解脱出来,另一类是提高人类的生活体验和感受使生活变得更美好。
2.开发技术的变迁似乎与第一个吻合,为使开发人员从繁重中解脱,出现的各种开发语言、模块和各种开发库。
那么QT,在设计初期,是否要求开发人员解决复杂的逻辑和数据组织呢?没有这样的要求。
在QT原创大师的头脑中,QT已经解决了开发过程中的大部分问题,已经封装了复杂的逻辑和数据组织,你只需拿他拼装你的表示层(界面),其余的能力他全部已经为你搞定了。从QT的示例和MODEL---VIEW结构的用法可以清晰看到这种思想。
然而在早期的嵌入式应用中,QT做的这些已经够用了,而PC平台应用QT时却远远不够。
1.mvc三者中,QT没有实现C,也没有提供实现C的体制和机制(因为C正是一个设计的灵魂,不同的程序千差万别),在简单的业务中可以轻易的设计出C,然而复杂的应用中却并不容易。
2.QT,视图标准化view和model,是开发人员直接面对业务的设计、界面设计和人机的交互感受设计,但他的模型仅是保存了对应view状态的模型,只是整个程序模型的一个子集或一个侧面,更高感受的界面似乎需要更多的信息,也使得应用显得有些无力应对。多层view---model嵌套形成复杂界面,数据变化的一致性又收到挑战(这种挑战意味着需要复杂的C来控制协同多个model变化)。
(摘选2013/3/19开发日记)