我目前正在研究一个学生项目,并想知道是否有办法专门用工厂方法创建对象?
public class PersonFactory {
public static Person createPerson() {
// some constraints ...
return new Person();
}
}
Run Code Online (Sandbox Code Playgroud)
我的示例PersonFactory.java应该Person用它的createPerson()方法返回对象.
public class Person {
// some examples ...
private String name;
private int age;
public Person() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在main程序中,我仍然能够Person使用它们的公共构造函数创建对象(因为它是public).但是如果我将构造函数更改为private,则工厂方法也无法访问它.
public class PersonManagement {
public static void main(String[] args) {
// both still works ...
Person p1 = new Person();
Person p2 = PersonFactory.createPerson(); …Run Code Online (Sandbox Code Playgroud)