内部类使得代码很难维护,有没有好的建议

cndn先森 2014-11-10 07:00:00
本人刚刚接触java,觉得java代码看起来真的很乱。
比如在一个Activity中有10种不同的请求网络的操作,那就会有10个异步类作为内部类来处理。
放在一个继承了Activity的类里,使得这个类很臃肿,代码也看起来非常乱,类的功能也不明确。
现在维护的是公司以前的Android代码,有没有好的办法能调整代码的结构?或者有没有结构比较好的代码的例子介绍一下?
...全文
244 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cndn先森 2015-01-05
  • 打赏
  • 举报
回复
我现在又有了新的感悟,分享一下,也给自己记录一下。 之前只是半路接手,维护这个项目,这个项目是分公司做的,但像外包的一样。 之前感觉代码中很多部分非常难以理解,或者冗余,但是不知道如何解决。后来因为项目的问题实在很严重,所以领导决定把这个项目交给我,让我带人重做。 我们发现,项目虽然很小,但是问题很多。 1.命名非常混乱。原因在于之前的项目团队并没有制定比较全面的编码规则。 2.代码逻辑混乱。原因在于对于业务非常不熟悉,主要是之前的开发人员没有认真阅读接口文档。 3.页面复用逻辑混乱。原因在于糟糕的原型设计。 然后我这样做了: 1.参考了文档自动化的知识,制订了编程规范。 2.重新定义了所有页面的功能。 3.将系统通用的方法抽象成工具类。 最后统一将项目中不合理的地方统统干掉! 总结出来几点: 1.代码审查工作。代码的质量不仅仅是通过测试即可,为了让项目能延续更长的生命,代码审查或许是必不可少的 2.关于团队配置,即使存在项目经理,也应该有一个第二负责人,这个人可以完成一些难度较高的代码或者给团队进行培训。 3.在大部分时候代码的可读性高于一切。 细节就不多解释了。
画虎烂 2014-11-12
  • 打赏
  • 举报
回复
你既然知道代码臃肿的部位了,那么就把这部分封装起来
gqjjqg 2014-11-11
  • 打赏
  • 举报
回复
引用 楼主 q1060013577 的回复:
本人刚刚接触java,觉得java代码看起来真的很乱。 比如在一个Activity中有10种不同的请求网络的操作,那就会有10个异步类作为内部类来处理。 放在一个继承了Activity的类里,使得这个类很臃肿,代码也看起来非常乱,类的功能也不明确。 现在维护的是公司以前的Android代码,有没有好的办法能调整代码的结构?或者有没有结构比较好的代码的例子介绍一下?
刚接触java,维护的还是公司现有的代码,建议没有必要的话别调整。
dali_yan 2014-11-11
  • 打赏
  • 举报
回复
引用 3 楼 q1060013577 的回复:
[quote=引用 2 楼 bdmh 的回复:] 将网络请求拿出去,单独成为一个类,提供不同的请求,你只需要根据需要创建不同的请求即可
能否说的更明白一点?没懂您的意思。[/quote]创建一些工具类不就行了
cndn先森 2014-11-11
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
将网络请求拿出去,单独成为一个类,提供不同的请求,你只需要根据需要创建不同的请求即可
能否说的更明白一点?没懂您的意思。
cndn先森 2014-11-11
  • 打赏
  • 举报
回复
引用 1 楼 sagittarius1988 的回复:
看开源项目啊 给你两个我常用的开源库 https://github.com/nostra13/Android-Universal-Image-Loader https://github.com/loopj/android-async-http
第一个HttpClient真的是太棒了,之前用的JDK里的URLConnection简直难用,一直想用HttpClient但是总是出毛病。
cndn先森 2014-11-11
  • 打赏
  • 举报
回复
引用 6 楼 yy282021238 的回复:
我只能说慢慢习惯就好,把网络请求之类的东西封装成工具类,把数据封装成实体类,有联系的东西就做成接口,此外别无它法了。
有同感,c\c++、c#、java包括我也都做过开发项目了。 个人感觉c#代码应该是最简洁、看起来最漂亮的了,java代码则相反。 android异步类本身就是实现的借口,再做一次抽象感觉有点多此一举。
此昵称已隐藏 2014-11-11
  • 打赏
  • 举报
回复
JAVA是这样的我当初也是从C++转过来学JAVA的,说实话,刚开始的时候看到JAVA的格式真的难以接受,太多无用的语句了 比如,在C++里声明类里的多个函数或变量为私有,只需要 class *** { public: ******; ******; private: ******; ******; } 而JAVA必须是 class *** { public ******; public ******; private ******; private ******; } 坑爹啊。 而且,JAVA不能把类函数的实现过程写到外面,而C++就可以用 类名::函数名(参数表){代码块} 这样的方式把函数单独在外部实现,类就不会显得臃肿了,这也就是你现在所遇到的问题吧。 我只能说慢慢习惯就好,把网络请求之类的东西封装成工具类,把数据封装成实体类,有联系的东西就做成接口,此外别无它法了。
bdmh 2014-11-10
  • 打赏
  • 举报
回复
将网络请求拿出去,单独成为一个类,提供不同的请求,你只需要根据需要创建不同的请求即可
sagittarius1988 2014-11-10
  • 打赏
  • 举报
回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧