锁定老帖子 主题:方法重构与性能优化
精华帖 (3) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-04
ftuo 写道 感觉还有一个好处就是容易代码阅读。
TaoistWar 写道 还有个好处可以复用
可以复用倒是真的, 容易阅读倒是仁者见仁,看你给方法命名的水平了,名字取得太丑的你还得F3来看看代码,然后又跳回去反而复杂了。 |
|
返回顶楼 | |
发表时间:2009-03-05
最近也在思考这个问题:
我们用的是BS结构的MVC开发模式,“业务层+Dao层”的模式,某个模块的一个httpRequest过来就把请求定位到该模块的业务层,然后调DAO层操作数据,然后处理结果返回给浏览器端。 这样有一个问题出现了,当模块逐渐增多的时候,我们的业务、Dao操作就会出现一些重复,或者说是相类似的情况,那么作为整个系统来说,这些是可以通过改善设计而瘦身的,可是到目前为止我还没有找到一个比较好的解决方法?希望各位同仁能说说你们是怎么面对这个问题的,谢谢。 |
|
返回顶楼 | |
发表时间:2009-03-05
danni505 写道 最近也在思考这个问题:
我们用的是BS结构的MVC开发模式,“业务层+Dao层”的模式,某个模块的一个httpRequest过来就把请求定位到该模块的业务层,然后调DAO层操作数据,然后处理结果返回给浏览器端。 这样有一个问题出现了,当模块逐渐增多的时候,我们的业务、Dao操作就会出现一些重复,或者说是相类似的情况,那么作为整个系统来说,这些是可以通过改善设计而瘦身的,可是到目前为止我还没有找到一个比较好的解决方法?希望各位同仁能说说你们是怎么面对这个问题的,谢谢。 你的问题没有具体情况是无法回答的。通常对重复的代码有两种方式来重构,1是继承,把公共的逻辑提出放到父类中 2是组合,把公共的逻辑提出放到单独类中,其他类引用这个类。两种方式各有适用场景。 |
|
返回顶楼 | |
发表时间:2009-03-05
谢谢楼上的提点,是的,我也思考了这个问题的使用场景,觉得这个如果从系统层面来看可能难以集中解决,不过对于一个大的模块则可以采用组合方式,继承我觉得不易控制,不赞同使用,比如一个系统的所有报表则可以进行一些集中定义,然后在各个报表实现中调用。这样的话对于所对公共逻辑的定义则显得十分重要,因为这必然会产生高耦合的情况,所以个人觉得正如楼上所说这种设计改良只适用于局部设计。
有不同观点者请跟帖。 |
|
返回顶楼 | |
发表时间:2009-03-24
taupo 写道 按照楼主的说法,我还可以说,JVM会生成一个方法列表【数组】,方法越多该列表就越大,调用的时候查找就越慢,更占用内存,性能就下降了哦
当然这些都是很微小的影响,理论上可能对性能有影响,但是这点影响你是否能感觉到呢? 所以我觉得对性能是否真正有提升,很难说 我觉得重构方法的主要作用还是在于重用和便于阅读理解 赞同taupo说的 方法大会导致过多的临时变量占用栈内存,那调用层次、调用上下文信息就不会??? 一般我们遇到stack over flow的时候,大部分是调用层次引起的问题吧,例如死循环^_^ 还有:觉得楼主对性能过于敏感了^_^ |
|
返回顶楼 | |