【发布时间】:2017-12-14 14:54:27
【问题描述】:
假设我有一个类示例:
public class Example(){
public static String method1(String param){...}
public static String method2(String param){...}
}
如果我的客户想同时调用这两种方法:他们会这样做:
String param = "Hello";
String result = Example.method1(param);
...
String result2 = Example.method2(param);
现在问题来了,如果我们在 Example 类的构造函数中传递参数并在没有任何参数的情况下调用这两个方法,那么这段代码是否会更好,如下所示:
public class Example(){
String param;
public Example(String param){
this.param = param
}
public String method1(){...}
public tring method2(){...}
}
客户只需调用:
Example example = new Example("Hello");
String result = example.method1();
String result2 = example.method2();
我想知道第二个是否比第一个好。因为在我看来,当我们不需要传递多个输入参数时,第二个更 OOP 并且更易于使用? 谁能给我一个建议?
【问题讨论】:
-
我想这取决于你的代码的用途。
-
如果
Example只有这两种方法,并且这些方法总是使用相同的参数调用,那么它可能是有意义的 -
如果 param 是一个对创建的对象很重要的常量值,则在构造函数中传递它。如果任何 methodX() 调用可能不同,则它是一个参数。
-
您需要能够
new Example("foo").method1(); new Example("bar").method2();吗?如果是这样,那么实例没有意义。实例不仅用于存储变量,还用于表示实体。
标签: java oop constructor static