我正在阅读有效的 Java教科书。第一项是关于使用静态工厂方法而不是公共构造函数。我的疑问是,如果我指定一个我Interface
如何指定一个静态工厂方法Interface
?因为java里面不支持静态方法interface
。教科书详细说明了如何创建一个包含公共静态工厂方法的不可实例化类。但是这些方法如何访问实现类的私有构造函数呢?
教科书说,如果您要定义一个Interface Type
,请创建一个不可实例化的类Types
并在该类中包含静态工厂方法。但是类中定义的方法如何Types
访问具体实现的私有构造函数Interface Type
编辑:- 下面的句子是从教科书中引用的。请解释一下它的含义
“接口不能有静态方法,因此按照惯例,名为Type的接口的静态工厂方法放在名为Types的不可实例化类(第 4 项)中”
编辑:- 取自Joshua Bloch 的 Effective Java:Item1 - Static Factory Method
public interface Foo{ //interface without plural 's' (question 1)
public void bar();
}
public abstract class Foos(){ // abstract factory with plural 's' (question 1)
public static Foo createFoo(){
return new MyFoo();
}
private class MyFoo implements Foo{ // a non visible implementation (question 2)
public void bar(){}
}
}
我的问题是,静态方法如何createFoo()
调用私有构造函数MyFoo