This question already has answers here:
Constructors vs Factory Methods [closed]
(10个回答)
5年前关闭。
我想创建一个静态类,其工作方式类似于枚举,但具有字符串值。
提取创建的类的完整实例,以下哪种方法最安全?
要么
(10个回答)
5年前关闭。
我想创建一个静态类,其工作方式类似于枚举,但具有字符串值。
提取创建的类的完整实例,以下哪种方法最安全?
public class Name
{
public static final Name MY_NAME = new Name("Chris", "Doe");
public String firstName;
public String lastName;
public Name(firstname, lastname)
{
this.firstName = firstname;
this.lastName = lastname;
}
}
要么
public class Name
{
public String firstName;
public String lastName;
public Name(firstname, lastname)
{
this.firstName = firstname;
this.lastName = lastname;
}
public static Name myName()
{
return new Name("Chris", "Doe");
}
}
最佳答案
我想使用第一个,因为第一个包含static final Name MY_NAME
,而在第二种情况下,每次调用new Name
都会返回myName() method
实例,这会浪费内存。因此,最好选择第一个。
因此,要提取所创建类的完整实例,您应该使用第一个实例。
另外,在谈论enum
时,您要保持常量值,您的static field final Name MY_NAME
实例将达到目的,您应该坚持第一个声明,从而支持您的枚举需求,而不是不浪费内存!
10-04 11:31