论坛首页 Java企业应用论坛

方法重构与性能优化

浏览 5526 次
精华帖 (3) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-04  
ftuo 写道
感觉还有一个好处就是容易代码阅读。

TaoistWar 写道
还有个好处可以复用


可以复用倒是真的,
容易阅读倒是仁者见仁,看你给方法命名的水平了,名字取得太丑的你还得F3来看看代码,然后又跳回去反而复杂了。
0 请登录后投票
   发表时间:2009-03-05  
最近也在思考这个问题:
    我们用的是BS结构的MVC开发模式,“业务层+Dao层”的模式,某个模块的一个httpRequest过来就把请求定位到该模块的业务层,然后调DAO层操作数据,然后处理结果返回给浏览器端。
    这样有一个问题出现了,当模块逐渐增多的时候,我们的业务、Dao操作就会出现一些重复,或者说是相类似的情况,那么作为整个系统来说,这些是可以通过改善设计而瘦身的,可是到目前为止我还没有找到一个比较好的解决方法?希望各位同仁能说说你们是怎么面对这个问题的,谢谢。
0 请登录后投票
   发表时间:2009-03-05  
danni505 写道
最近也在思考这个问题:
    我们用的是BS结构的MVC开发模式,“业务层+Dao层”的模式,某个模块的一个httpRequest过来就把请求定位到该模块的业务层,然后调DAO层操作数据,然后处理结果返回给浏览器端。
    这样有一个问题出现了,当模块逐渐增多的时候,我们的业务、Dao操作就会出现一些重复,或者说是相类似的情况,那么作为整个系统来说,这些是可以通过改善设计而瘦身的,可是到目前为止我还没有找到一个比较好的解决方法?希望各位同仁能说说你们是怎么面对这个问题的,谢谢。

你的问题没有具体情况是无法回答的。通常对重复的代码有两种方式来重构,1是继承,把公共的逻辑提出放到父类中 2是组合,把公共的逻辑提出放到单独类中,其他类引用这个类。两种方式各有适用场景。
0 请登录后投票
   发表时间:2009-03-05  
谢谢楼上的提点,是的,我也思考了这个问题的使用场景,觉得这个如果从系统层面来看可能难以集中解决,不过对于一个大的模块则可以采用组合方式,继承我觉得不易控制,不赞同使用,比如一个系统的所有报表则可以进行一些集中定义,然后在各个报表实现中调用。这样的话对于所对公共逻辑的定义则显得十分重要,因为这必然会产生高耦合的情况,所以个人觉得正如楼上所说这种设计改良只适用于局部设计。
有不同观点者请跟帖。
0 请登录后投票
   发表时间:2009-03-24  
taupo 写道
按照楼主的说法,我还可以说,JVM会生成一个方法列表【数组】,方法越多该列表就越大,调用的时候查找就越慢,更占用内存,性能就下降了哦

当然这些都是很微小的影响,理论上可能对性能有影响,但是这点影响你是否能感觉到呢?
所以我觉得对性能是否真正有提升,很难说
我觉得重构方法的主要作用还是在于重用和便于阅读理解


赞同taupo说的

方法大会导致过多的临时变量占用栈内存,那调用层次、调用上下文信息就不会???
一般我们遇到stack over flow的时候,大部分是调用层次引起的问题吧,例如死循环^_^

还有:觉得楼主对性能过于敏感了^_^ 
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics