【问题标题】:Is Factory Method pattern without abstract methods possible?没有抽象方法的工厂方法模式是否可行?
【发布时间】:2013-10-08 18:17:07
【问题描述】:

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

【问题讨论】:

标签: java abstract factory-pattern abstract-factory


【解决方案1】:

当然: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;
    }
}

【讨论】:

  • 我想不出没有它们的工厂方法模式。
  • @Minhaj 看看我添加到答案中的一个小例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 2011-01-05
相关资源
最近更新 更多