如果我们有A和B类,并且A类的构造函数是私有的,并且我们想在B中使用A的实例,该怎么做?我看到一个答案说"提供一个静态方法或变量,允许访问从类中创建的实例",但我不明白.
您寻找的代码模式称为工厂方法.
该类提供了一个静态方法,该方法返回其自己的类的实例.私有构造函数对类的所有方法(包括静态方法)都是可见的,因此静态方法可以代表调用者调用私有构造函数.
以下是此模式的示例:
public class A {
private A() {
}
public static A create() {
return new A();
}
}
Run Code Online (Sandbox Code Playgroud)
这通常与Singleton Pattern一起使用,这会将上面的示例更改为:
public class A {
private static A INSTANCE = new A();
private A() {
}
public static A getInstance() {
return INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |