windows程序设计读书笔记(Windows的思维方式)
早起无事,随便上网看看.
今天谈谈我所理解的Windows的思维方式,或者说设计思路.
昨天终于看到了对话框这个章节,第11章,回顾前段时间所学,深有感触.
Windows程序设计这本书的章节设计是非常用心的,一个层次一个层次向前推进,逐步打开windows程序设计的各个不同层次和不同内容,后一章节往往在前一章节的基础上进行引申发散,使读者的思维步步深入.
譬如,先讲了怎么调用MessageBox,再讲解如果定义窗口类,如何进入消息循环.把这个问题一旦理解清楚了,后面的程序代码的前半部分,都可以跳过不看,专注于消息循环处理部分.而消息循环的处理,先讲解键盘消息,这个是在消息机制的基础上的;再讲解mouse,理解了键盘,mouse就好理解多了.再讲解window control,这些是需要前面所讲的keyboard和mouse来进行支持的,然后是资源,然后把这些组合起来,才是对话框.
跳过其中任何一部分都是不可能的.
今天主要谈谈资源的概念以及对windows的影响.
我个人认为资源的概念提出,是Windows系统的一大特点,虽然很少有人这样来讲.
在经典的编程模式中,有这样一个公式:
程序 = 数据结构 + 算法.
在这种思维方式的主导下,开发者往往把算法和数据结构截然分开,专注于设计各种不同的程序来完成一个一个不同的任务,而对于通用性的任务,则很少考虑如何设计一个通用的解决方案和算法.总之,是倾向于编写程序,而不是编写一个配置文件来解决问题.
而windows在这一点上的设计应该说非常独特.
尤其是对对话框的设计上.
这里的对话框,不仅仅是指系统的标准对话框,实际上几乎所有的窗口,都可以看成是对话框.windows在内部表示这些对话框的时候,是采用一个资源文件的方式来进行定义的.一个资源文件中的一小部分就可以表示一个对话框,而对话框本身又包含子窗口控件.
在编译的时候把这个对话框变成相关代码,连接进可执行文件中进行执行.
相比较而言,Java在这方面做的就差很多了,它没有一个界面的描述定义资源文件,每个控件都必须用程序加入到界面上去,最后程序的代码就变的很长很长,难以理解,也无法维护.
Java如果能把资源文件这个概念加入到自己的系统里面,图形化开发就会容易很多很多.
该出发上班了,未完待续.
今天谈谈我所理解的Windows的思维方式,或者说设计思路.
昨天终于看到了对话框这个章节,第11章,回顾前段时间所学,深有感触.
Windows程序设计这本书的章节设计是非常用心的,一个层次一个层次向前推进,逐步打开windows程序设计的各个不同层次和不同内容,后一章节往往在前一章节的基础上进行引申发散,使读者的思维步步深入.
譬如,先讲了怎么调用MessageBox,再讲解如果定义窗口类,如何进入消息循环.把这个问题一旦理解清楚了,后面的程序代码的前半部分,都可以跳过不看,专注于消息循环处理部分.而消息循环的处理,先讲解键盘消息,这个是在消息机制的基础上的;再讲解mouse,理解了键盘,mouse就好理解多了.再讲解window control,这些是需要前面所讲的keyboard和mouse来进行支持的,然后是资源,然后把这些组合起来,才是对话框.
跳过其中任何一部分都是不可能的.
今天主要谈谈资源的概念以及对windows的影响.
我个人认为资源的概念提出,是Windows系统的一大特点,虽然很少有人这样来讲.
在经典的编程模式中,有这样一个公式:
程序 = 数据结构 + 算法.
在这种思维方式的主导下,开发者往往把算法和数据结构截然分开,专注于设计各种不同的程序来完成一个一个不同的任务,而对于通用性的任务,则很少考虑如何设计一个通用的解决方案和算法.总之,是倾向于编写程序,而不是编写一个配置文件来解决问题.
而windows在这一点上的设计应该说非常独特.
尤其是对对话框的设计上.
这里的对话框,不仅仅是指系统的标准对话框,实际上几乎所有的窗口,都可以看成是对话框.windows在内部表示这些对话框的时候,是采用一个资源文件的方式来进行定义的.一个资源文件中的一小部分就可以表示一个对话框,而对话框本身又包含子窗口控件.
在编译的时候把这个对话框变成相关代码,连接进可执行文件中进行执行.
相比较而言,Java在这方面做的就差很多了,它没有一个界面的描述定义资源文件,每个控件都必须用程序加入到界面上去,最后程序的代码就变的很长很长,难以理解,也无法维护.
Java如果能把资源文件这个概念加入到自己的系统里面,图形化开发就会容易很多很多.
该出发上班了,未完待续.