工厂方法模式是否可能没有抽象方法?

时间:2013-10-08 18:17:08

标签: java abstract factory-pattern abstract-factory

假设有一个没有抽象方法的Java程序,是否可以在没有抽象方法的情况下实现Factory Method模式?

1 个答案:

答案 0 :(得分:0)

绝对:factory method不需要是抽象的 - 它可以是非抽象方法,默认实现抛出异常,或者它可以是接口的方法,它总是抽象的

interface Product {
    void doSomething();
}
interface Creator {
     Product create(String someData);
}
class ProductX implements Product {
    public void doSomething() {
         System.out.println("X");
    }
}
class ProductY implements Product {
    public void doSomething() {
         System.out.println("y");
    }
}
class XYFactory implements Creator {
    public Product create(String someData) {
        if ("X".equals(someData)) {
            return new ProductX();
        }
        if ("Y".equals(someData)) {
            return new ProductY();
        }
        return null;
    }
}