最后我们来讲一下代码风格的问题
1. 魔法数字,也有叫数字常量的
总之,就是一个数字戳在那,谁也不知道这是什么意思, 这种代码还会导致一个问题就是代码的值发生变化的时候,无法确保所有的相关代码都得到修改。
OpenWnn里这种情况太多了,就不一一列举了。
同样的字符串常量也是一个问题。
对于这种情况,定义成常量并不是解决问题的唯一办法,还有很多更好的办法,比如,拆分类。
2. 静态表
Java代码中的静态块static{}可以让一部分固定的赋值代码提前执行,但是如果用不好这个特性,反而这个会成为代码的问题。
RomKan代码中的romkanTable ,表示输入的英文字母是如何转换成为假名的。
但是代码这么书写之后,就挤在一起了。而且相关代码特别的长。
如果这些转换代码都放在xml中,启动的时候加载一下就好懂的多了。并且,Java对于代码的长度是有限制的。如果想要用同样的方法书写拼音转换成汉字那连编译都无法通过。
浊点表,半浊点表,键盘切换表都有同样的问题。
3.Unicode代码
在DefaultSoftKeyboard中有很多以Unicode书写的代码"\u3044",谁知道是什么意思呢?
对于这些Unicode可以采用xml文件存储为真实的字符,以便于理解。
4.空的catch
catch一定不要为空,如果必须为空那就写上注释。在catch中只打印Log的视同为空处理。
这个在OpenWnn中也是比比皆是。