在重构ZUI中对用户界面实现的思考

    首先,在写ZUI的时候对编程思想不能很好的理解,只知道面向对象以及面向过程。现在回头看以前写的无疑是面向过程,当然最后对于整个代码封装成类,这个不算这是为了便利性。在重构中认识这种面向过程好处主要是是几点。首先节省内存,这点在像arduino pro mini rom32k ram2k 这类配置极低的单片机来说显得尤为重要。在面向过程中控件的绘制是通过函数来实现的,例如zui的text函数Text(0,0,"hello world");所有的变量都属于自动存储,在函数结束完即释放,面向过程在这点上对面向对象有着天生的优势。面向对象new属于动态存储,离开了这个函数它还是存在需要手动释放。然而因为这是用户界面不能一个页面结束就给释放了,如果释放了下次需要进入这个会看到一片空白或者乱码,因为原来内存地址上的数据已经释放现在这里要么是空的要么被其他的数据占了。所以如果是面向对象在运行时所有页面,控件的属性保存在内存中就会造成内存的大量占用,而即使是面向过程的zui光一个空壳界面就占用到30%的内存。

   面向过程的优势其次是写法简单直接在home的函数内Text(0,0,"hello world");,在重构时我是考虑过改面向对象的,想象一下首先需要

Page* home =new Page(0);//0是页面编号

Text* text0 = new Text(0,0,"hello world",home);//home是父控件

Text肯定是Page的派生类不用说,其它控件类也是,统一接口。这样首先你需要取名,因为不进行释放,所以这个页面控件的取名还不能其它页面冲突岂不是很麻烦.而且还需多打很多字母,其实我觉得这个优势有点强行了。

    再来说说像ZUI这样面向过程的缺点ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值