在面向对象语言编程中我们都知道不要重复造轮子(也就是不要重复的去写一段代码),但我们知道么,在有些时候轮子造多了会有反效果,那么我们就来说说这些反效果吧。
1.最近刚到一家产品公司,我的工作就是维护优化修复现有app,并定时发布新的版本,最近头疼的问题是因为我刚来,对上一个人的代码不是很熟悉,经过几天的熟悉了解之后,发现上一个人写的代码很牛逼,让人一看就知道是大神写的代码,各种封装,各种重复利用,几个车轮子来回跑,好不容易理解的他的代码意图,然后我对他的认可就随之发生了改变,为什么呢?原因出现在一个功能上,在现有app中有发帖功能,同时在其他模块有发表公告的功能,从美工给的切图看来大体好像差不多,但是发帖需要选择分类,发表公告不许要选择分类,同时发帖有200字数限制,发表公告有2000字数限制,按钮的风格也不一样,但是我原本以为是两个界面,结果大吃一惊,竟然是一个类,这个类的代码已经写到了1156行,很膨胀的一个类
为什么会有这么多代码?
我们来分析一下,因为是两个功能模块公用的同一个类,导致每次都需要不断去判断类型从而进行不同的操作,代码臃肿,凌乱不堪,经过漫长的整理之后,我将这两个功能模块分开,这次会发现:
发表帖子界面有383行代码,发表公告界面有316行代码,发现没?383+316<1156
看似分开会多写很多代码,可是实际上节省的大量的if-else的类型判断从而会节约大量的时间,及工作量。
在android开发中什么样的东西可以通过只用一个轮子来解决呢?
1.功能相同,务必100%,统一封装,统一调用
2.如果你发现你每次都要写两行以上的代码,并且在同一个类中重复次数>2,那么封装一个方法即可
什么时候不能只用一个轮子来解决问题呢?
3.涉及到UI界面的一定要保证一个界面一个activity,保不准那天功能需求变动就悲催了
强烈建议开发者使用mvp或mvvm框架,这样代码耦合度低,且方便阅读