- 接口不能具有静态方法,因此按照惯例,名为Type的接口的静态工厂方法将放置在名为Types的不可实例化的类中 。
关键是 “ Type [s]”上 的 复数’s’
。因此,如果您的接口被调用,
Foo并且您想要创建一个称为的实现,
MyFoo则
Foos按惯例应调用带有实例化方法的工厂。
- 返回对象的类都是非公共的
这意味着从工厂方法返回的对象类具有私有或默认的可见性修饰符,
private classMyFoo{}因此它们只能通过工厂方法来实例化。由于您不能使用new运算符从私有内部对象或私有类的对象(超出反射范围)构造对象。
例如:
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(){} } }


