2011年5月30日星期一

  数据和逻辑永远都比界面重要

     今天写一个网络通信的软件。其中设置到的一个是记录发送消息和接受消息的日志,以前做法是直接通过调用CEdit的setWindowText进行的。发现既繁琐又无法真正实现多用话的功能,而且日志数据很难和应用程序的其他对象共享。

    其实有另外一种做法,就是我们以数据为中心,而不是关注界面。假设不存在界面那么我们写程序会如何实现呢?当然,我们会想到用一个对象来记录日志,如可以使用MFC里面的CStringArray ,声明一个全局的变量gLogs ,然后我们需要插入日志的地方直接gLogs.add 即可,需要清除日志的时候只要调用gLogs.RemoveAll 即可。

    这样以数据位中心,我们的日志可以共享给应用程序的任何对象使用,如果要使用界面进行显示,我们可以扩展CEdit 增加一个 attachData(CStringArray) 的成员函数,将控件和gLogs变量关联起来,这样我们需要刷新显示的时候只要再增加一个updateLogs 之类地方,然后扩展后的CEdit从gLogs变量获取数据进行显示即可。

没有评论:

发表评论