很久没有来更新自己的日志了。这段时间好忙,上个星期居然加了四天班,每天都9:00-10:00才回去。
做的项目里面的UI部分的涉及比较多,老大希望我的可以抽离出来拿给大家用。非要我自己抽离出来,在抽离的过程中才发现自己以前写代码的很多地方设计观念有问题。
问题列表:
1.多个窗口的时候,有些变量需要在窗口之间传递,那么总是从得到窗口的指针,然后取得该变量。或者通过窗口指针访问窗口中暴露该接口的函数;
问题:造成代码中总是有很多窗口指针传来传去。而且有时候窗口指针是几重的。
2.多个窗口中总是备份同样的状态指示标识或者某一标记变量。造成没有办法实时更新。(有时候更新了这个,忘记更新那个;而且浪费空间,最后错误发生的时候很难调试)
问题:用一个全局的类中设计变量就可以了。可以用于所有需要的窗口。
3.有些地方设计的不够灵活,造成代码修改麻烦。
4.窗口动作响应和UI响应代码混合。
问题:造成日后代码阅读麻烦。
5.注释不够好。
问题:一直以为写多的注释就是好的。但是看了TVSKIN的注释才知道,注释其实可以利用标准化的模板来套用。
6.公共函数分离度不够。
问题:公共函数其实都可以抽离出来。例如多个窗口公用的某些字符串转换函数。DEBUG输出函数。其实都可以提炼成全局的函数。
全局的函数不必要写一个专门的类。只要没有类的SCOPE,它就是整个工程的全局函数。
7.其实如果需要写到.INI配置文件的变量,多半可以作为一个全局类的变量来使用。因为这些变量多半需要在整个工程的多个窗口之间传递使用。
8.窗口的响应函数。
如果不但是该窗口的变量和动作响应可以处理的,那么把响应操作都写到父窗口。或者工程的顶层窗口。
另外一种做法:响应函数都写出来,写成全局函数。只是把当前窗口作为参数也传入函数。这种设计需要统一和高度抽象,比较难写。
9.以后AP的工程都遵循自己现在分离后UI代码的架构。有用的控件类可以慢慢添加。有用的公共类也可以慢慢添加。
这样使用起来,UI和动作函数也完全分离。
DIALOG类里面只写处理动作响应的函数。基本默认的响应函数里面只有函数。不会出现任何变量处理的单独语句。
waterathena: 希望自己写的代码结构越来越清晰,层次分明。重复代码越来越少,变量多次备份的现象减少。