求关于java代码优化

assdust110 2008-06-21 04:20:54
工作了不短时间了,代码写得还是很垃圾,经常一个类有1000+行

而且是用于显示的类,但是在面板上的一些操作都是写到这个类里面(我是做SWING的,基本上所有的操作都写在Action里面,然后一些判断和赋值一写,代码就长了)

心情很郁闷,觉得自己很渣,不知道有没有人和我一样的感觉,哎,希望大家能集思广益,有办法说下办法,没办法帮忙顶下,谢谢了
...全文
494 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzyyygyf 2010-10-18
  • 打赏
  • 举报
回复
优秀的程序是经验的总结,建议你先看优秀的开源代码,学习别人的编程风格。

比如JDK就是开源的,当然,了解JDK源码需要有扎实的语法基础,如果要看,也先看lang包和util包,因为依赖关系较少。需要注意的是,不要被类中莫名的方法调用吓到而影响你对这个类的理解,对于莫名的方法,只需要查看他的API的意思就行了,或者根据它的英文命名来判断。

在看源码的时候最好使用eclipse的快捷键,ctrl+左键进入方法,ctr+t和F4查看继承结构,用来找到实现类

不只是JDK,开源的东西很多

个人不建议你看直接根据设计模式来编码,设计模式是一种经验的积累,随随便便去套用设计模式是不好的。
shengli_liao 2008-07-07
  • 打赏
  • 举报
回复
看来有些人的真心回复被当成了肉包子
assdust110 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 shengli_liao 的回复:]
看来有些人的真心回复被当成了肉包子
[/Quote]

认真回复人人有分,万金油你就老实点搬张椅子去别的楼等包子吧
assdust110 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 shengli_liao 的回复:]
每个类控制在100行内,这可能有点困难。
我一般控制在500行以内,包括注释。
方法模块化。
[/Quote]

万金油回复就别说了

来点实在的你也有分 完毕
assdust110 2008-07-05
  • 打赏
  • 举报
回复
谢谢大家,给分规则是万金油和引用他人回复不给分.

其它的看情况给分.谢谢大家了
assdust110 2008-07-03
  • 打赏
  • 举报
回复
谢谢大家关注,我打算下周日结贴,希望大家有好的建议不吝提出。谢谢大家
bananabear 2008-07-01
  • 打赏
  • 举报
回复
既然楼主是用swing开发的,建议楼主了解一下MVC模式,然后再学习一下其他的设计模式,好好捉摸捉摸,会有很大收获的。
allenaverson 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 zhj92lxs 的回复:]
看看head first 设计模式
[/Quote]
assdust110 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 ilrxx 的回复:]
我觉得这不重要,软件工程师最高的目标就是系统架构师,如何效率,性能最高,系统负载最小,才是目标的一部分,代码长短不在考虑的范围之内..
[/Quote]

是有这么一说,但是代码的优美也很重要
yuan_979039976 2008-07-01
  • 打赏
  • 举报
回复
其实在你做的东西多了以后你完全可以把大体上都有的一个界面拿出来包装成一个自己的类包,到时侯拿出来应该会省心的多。
至于你说代码的复杂性这是肯定的因为我们不能把每一件事的发生都由Switch实现因为它支持不了,所以我们无奈才选择了IF于ELSE的嵌套。所以你没有必要过于自责。
yzzlijun 2008-06-30
  • 打赏
  • 举报
回复
给你的建议就是。写监听的时候调用要实现功能的方法。遵循程序功能单一性原则
yougucao379548695 2008-06-29
  • 打赏
  • 举报
回复
我也在500行啊。。。。。
shengli_liao 2008-06-28
  • 打赏
  • 举报
回复
每个类控制在100行内,这可能有点困难。
我一般控制在500行以内,包括注释。
方法模块化。
愤怒的小蒋 2008-06-27
  • 打赏
  • 举报
回复
每个类控制在100行内。
ilrxx 2008-06-27
  • 打赏
  • 举报
回复
我觉得这不重要,软件工程师最高的目标就是系统架构师,如何效率,性能最高,系统负载最小,才是目标的一部分,代码长短不在考虑的范围之内..
l_wenb 2008-06-26
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 java2000_net 的回复:]
可以看看 <重构>的书了。

其实你理解成你在带领10个人的团队
你要让他们都有活干,不能闲着。
当然,他们每个人只能干、擅长某一类工作

你的程序就是活,怎么安排,看你自己啦。。。。。。

这是训练组织能力和工作分配能力。
[/Quote]
assdust110 2008-06-25
  • 打赏
  • 举报
回复
看得有点晕。。。

不过有这么多资深人士给我提建议我已经很满足了。。。

谢谢大家了。
zhaohuihua 2008-06-24
  • 打赏
  • 举报
回复
我之前编码也是只求实现功能
最近在考虑参照Swing的MVC模式实现数据与业务逻辑、显示的分离
以一个类保存数据,公开数据改变的方法和数据改变的监听器
一个类负责界面的显示,并注册到数据类以监听到数据的改变时更新界面
一个类负责逻辑控制,对用户的按键事件、鼠标事件进行处理,并在需要的时候调用数据类的方法引发数据改变
如Swing的List类:
数据类就是DefaultListModel
界面显示类为BasicListUI
逻辑控制类是JList

assdust110 2008-06-24
  • 打赏
  • 举报
回复
21楼能说具体点吗?

因为我是做swing的,所以一个界面里面的Action一般都只处理这个类里面的业务

所以没有很多能抽象出来的东西,

如果按照比例计算的话,估计显示最多4成,而控制(Action)最少要占6成。

可能最好的办法,也就是17楼的把Action独立出来了。。。
  • 打赏
  • 举报
回复
公共的方法实现
多调方法
加载更多回复(24)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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