浏览 3051 次
锁定老帖子 主题:关于返回值的处理
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-05
我有一个方法,里面的逻辑代码都一样,而且参数都一样,只是返回值不同。有时候需要的返回值是boolean类型的,有时候需要是List类型等。 因为代码的重用性,所以我不想再写其他的方法。请问有什么办法能解决这个问题? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-05
既然逻辑基本都一样那就应该抽出来形成一个独立的方法啊,再根据返回值来添加不同的方法调用该方法即可
|
|
返回顶楼 | |
发表时间:2007-05-05
|
|
返回顶楼 | |
发表时间:2007-05-05
我现在就是一个单独的方法,该如何抽出来成一个独立的方法
能不能写一个例子看看呀 |
|
返回顶楼 | |
发表时间:2007-05-05
我们得到固定接口类型的返回值并不仅仅是编程语言的约束,一般还是因为我们可以对这个返回值进行统一的处理,这也是多态的体现。
比方说: java 代码
这里的YourTask一般就是一个接口类型,它有call这个方法,所以我们的返回值类型是统一的。 具体到你的情况,也许是设计思路有问题,你的返回值是用来做什么的?能否不使用返回值这种方式? 例如: java 代码
java 代码
这时,实际上返回值仅仅是一个中间变量。 顺便插一句,代码的重用不是没有前提,没有代价的,为了重用而重用并不总是合理的。 shangmw 写道: 我有一个方法,里面的逻辑代码都一样,而且参数都一样,只是返回值不同。有时候需要的返回值是boolean类型的,有时候需要是List类型等。 因为代码的重用性,所以我不想再写其他的方法。请问有什么办法能解决这个问题? |
|
返回顶楼 | |
发表时间:2007-05-05
谢谢楼上大哥,在下获益匪浅
我现在在一家公司里用EJB3.0来做一个电力相关的系统,当然在下才刚出来,经验和其他方面都还不够,所以在做的时候都不是很好 我现在想做这样的一个方法,这个方法是查询数据库的。如果验证数据库中是否有这样的一条数据时,我想它返回一个BOOLEAN值。有时候想显示结果,这时我想它返回一个List值的返回值 由于这样的问题,所以我才考虑怎么来解决这个返回值 |
|
返回顶楼 | |
发表时间:2007-05-06
仅仅只是简单两种情况,简单的抽出公用的逻辑即可,当然如果你认为以后还有必要扩展的话,可以使用fsword的方式,重用是需要代价的,不宜过度重用。
|
|
返回顶楼 | |
发表时间:2007-05-06
请问fsword的方式是什么,能否详细说一下
|
|
返回顶楼 | |
发表时间:2007-05-06
你没看明白他说的方法吗?
实际上返回值仅仅是一个中间变量。 这个就是他的意思,不要将不同的结果作为返回值处理,而是作为一个参量或者判断依据来做,例如 引用 someFunction(){ List result = getresult(); if(result != null && result.size > 0){ do1(result); }else{ do2(result); } } 我这个例子和他的有点不一样,他为了达到重用的效果,将不同的处理方式作为不同的TASK对像,而我的方式仅仅是作为不同的方法即可,避免过度重用。 |
|
返回顶楼 | |
发表时间:2007-05-06
多写个方法,copy 就好了。。
|
|
返回顶楼 | |