PC Camera UI 部分代码分离有感
2009-03-17 06:22
183 查看
很久没有来更新自己的日志了。这段时间好忙,上个星期居然加了四天班,每天都9:00-10:00才回去。
做的项目里面的UI部分的涉及比较多,老大希望我的可以抽离出来拿给大家用。非要我自己抽离出来,在抽离的过程中才发现自己以前写代码的很多地方设计观念有问题。
问题列表:
1.多个窗口的时候,有些变量需要在窗口之间传递,那么总是从得到窗口的指针,然后取得该变量。或者通过窗口指针访问窗口中暴露该接口的函数;
问题:造成代码中总是有很多窗口指针传来传去。而且有时候窗口指针是几重的。
2.多个窗口中总是备份同样的状态指示标识或者某一标记变量。造成没有办法实时更新。(有时候更新了这个,忘记更新那个;而且浪费空间,最后错误发生的时候很难调试)
问题:用一个全局的类中设计变量就可以了。可以用于所有需要的窗口。
3.有些地方设计的不够灵活,造成代码修改麻烦。
4.窗口动作响应和UI响应代码混合。
问题:造成日后代码阅读麻烦。
5.注释不够好。
问题:一直以为写多的注释就是好的。但是看了TVSKIN的注释才知道,注释其实可以利用标准化的模板来套用。
6.公共函数分离度不够。
问题:公共函数其实都可以抽离出来。例如多个窗口公用的某些字符串转换函数。DEBUG输出函数。其实都可以提炼成全局的函数。
全局的函数不必要写一个专门的类。只要没有类的SCOPE,它就是整个工程的全局函数。
7.其实如果需要写到.INI配置文件的变量,多半可以作为一个全局类的变量来使用。因为这些变量多半需要在整个工程的多个窗口之间传递使用。
8.窗口的响应函数。
如果不但是该窗口的变量和动作响应可以处理的,那么把响应操作都写到父窗口。或者工程的顶层窗口。
另外一种做法:响应函数都写出来,写成全局函数。只是把当前窗口作为参数也传入函数。这种设计需要统一和高度抽象,比较难写。
9.以后AP的工程都遵循自己现在分离后UI代码的架构。有用的控件类可以慢慢添加。有用的公共类也可以慢慢添加。
这样使用起来,UI和动作函数也完全分离。
DIALOG类里面只写处理动作响应的函数。基本默认的响应函数里面只有函数。不会出现任何变量处理的单独语句。
waterathena: 希望自己写的代码结构越来越清晰,层次分明。重复代码越来越少,变量多次备份的现象减少。
做的项目里面的UI部分的涉及比较多,老大希望我的可以抽离出来拿给大家用。非要我自己抽离出来,在抽离的过程中才发现自己以前写代码的很多地方设计观念有问题。
问题列表:
1.多个窗口的时候,有些变量需要在窗口之间传递,那么总是从得到窗口的指针,然后取得该变量。或者通过窗口指针访问窗口中暴露该接口的函数;
问题:造成代码中总是有很多窗口指针传来传去。而且有时候窗口指针是几重的。
2.多个窗口中总是备份同样的状态指示标识或者某一标记变量。造成没有办法实时更新。(有时候更新了这个,忘记更新那个;而且浪费空间,最后错误发生的时候很难调试)
问题:用一个全局的类中设计变量就可以了。可以用于所有需要的窗口。
3.有些地方设计的不够灵活,造成代码修改麻烦。
4.窗口动作响应和UI响应代码混合。
问题:造成日后代码阅读麻烦。
5.注释不够好。
问题:一直以为写多的注释就是好的。但是看了TVSKIN的注释才知道,注释其实可以利用标准化的模板来套用。
6.公共函数分离度不够。
问题:公共函数其实都可以抽离出来。例如多个窗口公用的某些字符串转换函数。DEBUG输出函数。其实都可以提炼成全局的函数。
全局的函数不必要写一个专门的类。只要没有类的SCOPE,它就是整个工程的全局函数。
7.其实如果需要写到.INI配置文件的变量,多半可以作为一个全局类的变量来使用。因为这些变量多半需要在整个工程的多个窗口之间传递使用。
8.窗口的响应函数。
如果不但是该窗口的变量和动作响应可以处理的,那么把响应操作都写到父窗口。或者工程的顶层窗口。
另外一种做法:响应函数都写出来,写成全局函数。只是把当前窗口作为参数也传入函数。这种设计需要统一和高度抽象,比较难写。
9.以后AP的工程都遵循自己现在分离后UI代码的架构。有用的控件类可以慢慢添加。有用的公共类也可以慢慢添加。
这样使用起来,UI和动作函数也完全分离。
DIALOG类里面只写处理动作响应的函数。基本默认的响应函数里面只有函数。不会出现任何变量处理的单独语句。
waterathena: 希望自己写的代码结构越来越清晰,层次分明。重复代码越来越少,变量多次备份的现象减少。
相关文章推荐
- OC-UI部分,简单的登陆界面简单代码
- 基于HTTP登录系统的扩展(代码设计实现UI部分)
- PC Camera开发日志(十一)------ TTPLAYER UI 分析
- 通过定义BaseActivity来实现项目中代码重用,重写setContentView实现多个Activity部分UI布局相同
- 第一行代码,UI开发部分<一>
- androidUI第三部分---1.3.2不使用xml文件手工代码实现布局
- Vue 项目打包时部分 MINT-UI 的 ES6 代码未转换成 ES5 的 BUG 的解决
- ios 重用UI部分代码的好方法(再也不用为局部变量的命名而烦恼啦!)
- 新浪微博PC客户端(DotNet WinForm C# 版,C#调用新浪微博API代码,源码下载)—— 初探 (第二部分内置链接)
- UI分离的数据绑定 完全在cs代码中实现
- IOS开发中UI部分UIWebView简单使用<代码演示>
- 第一行代码 UI部分笔记(写一个通用的标题栏)
- 前后端分离实践有感
- 基于JavaScript代码实现pc与手机之间的跳转
- 走得越慢,走得越远 (读 shared_ptr 代码有感)
- 实时显示iOS编写UI代码效果
- ThinkPHP注册自动验证及自动完成部分代码参考
- 谷歌官方Android UI设计秘笈:第一部分
- 利用BP神经网络教计算机识别语音特征信号(代码部分SS)
- Spring boot环境搭建(二)- 代码分离、日志文件配置