如何解决Java参数传递问题
| 我正在寻找一个通用的Java问题。可以说我有一个具有高度属性的对象,并且我有一个使用高度进行计算的方法。将属性height传递给方法是否更好,或者传递完整对象并使用getter来获取height值有什么不同?我希望这是有道理的。 例如public getHeightInMeters(Object object) {
return object.getHeight()*x;
}
是一样的,比这更好,比什么更好?
public getHeightInMeters(Height height) {
return height*x;
}
解决方法
这取决于。
如果您要执行的操作在语义上与对象的类型相关联,则有意义的是传递对象。或者,如果您正在使用对象的多个属性。
如果该操作是通用的,也就是说,它适用于整数而不是对象的特定属性,则只接受整数。
, 第二个版本更好。我的签名不太复杂。由于getHeightInMeters()方法仅需要高度值,因此应使其简单。
, 第二。 getHeightInMeters是否关心对象?如果不是,则不需要它。
它只需要高度,这就是您应该通过的高度。
, 第二种是最好/正确的方法。
最好传入属性高度,因为您可以分解依赖性。也就是说,如果您更改传入的对象的delete / rename方法,则最终会产生巨大的头痛。
此外,如果您只是通过属性高度,您将始终知道会产生什么结果。
, 仅传递高度信息所需的开销比整个对象要少,因为每次序列化的数据都较少。对于小型应用程序而言,这没有什么区别,但是随着规模的扩大,您将产生更大的开销。
如果那是您需要对象唯一的属性,则它是更好的选择。
,
class Person {
private double height;
public void setHeight(double height){
this.height = height;
}
public double getHeight(){
return height;
}
}
约定可能是此类的高度以米为单位。
但是您可以为其他指标创建一些转化
public class Converter{
public static double convertFromMeterToInch(double meters){
return meters * \'some factor you get from net\'
}
public static double convertFromInchtoMeter(double inch){
return ....
}
}
, 通常取决于:
如果您使用的是一个对象的多个属性,那么第一个解决方案要比添加更多参数好。如果操作仅与对象有关,则也具有这种意义;否则,如果仅是可以对其他对象执行的某些原子操作,则使用第二种形式。
前缀“ 4”的另一件事通常应用于类成员,在这种情况下,其接缝就像仅对某些常数和外部值起作用。我们不是它的单位。更好的命名是例如pixelsToMetters(int pixel)
,在这种情况下,我们知道两个单位。
, 由于getXXXX()通常是访问器方法的命名约定,因此它将属于您的类,因此可以满足以下要求:
public double getHeightInMeters() {
return this.height*x;
}
如果您只需要一个转换器,请用不同的名称命名并传递一个双精度值,因为它对您传递的对象不起作用。这样,您也可以在任何其他上下文中重用此方法。
保持简单!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。