Java工厂模式,创建特定的类

标签 java factory

我在一次采访中遇到了一个问题,我有两种食物,比如面包和蛋糕,得到的信息如下:

 public class FoodFactory{};

 public class Food{};

 public static void main(String[] args) {
    Food foo = FoodFactory.get("bread");
    System.out.println(foo.getClass().getName());
 }

考虑到 FoodFactory 类和 Food 类,我不确定如何完成这项工作,以便打印出“bread” 对于类(class)。看起来让它打印面包的唯一方法就是创建一个 Bread 类并让 FoodFactory 返回该类。

我只是想知道我是否遗漏了任何东西,因为 FoodFactoryFood 是给定的类,所以我认为这些是我需要更改的唯一两个类。有没有办法实现给定的两个类并使其在仅使用这两个类的情况下打印“bread”?

最佳答案

因此,一种方法是创建一个类 Bread ,它扩展类 Food 并让 FoodFactory.get() 返回基于传递的字符串的适当对象。

class Food {};

class Bread extends Food {};

class FoodFactory {
    public static Food get(String type){
        switch(type){
            case "bread" : return new Bread();
            default : return new Food();
        }     
    }
}

另一种方法是使用反射。

关于Java工厂模式,创建特定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37092854/

相关文章:

c++ - 基于模板的自注册工厂,具有现代 CMake 构建和源代码插入检测

java - session 无效无法使用基于 LTPA 的安全性

java - 如何在 Codenameone 中播放音频

java - 无法从数据库填充 Javafx TableView

javascript - 提高 JavaScript 中工厂模式的内存效率

c# - 具有参数条件的简单工厂,使用 Unity 2.0

c# - 如何对依赖于工厂的代码进行单元测试

java - 如何在Java中向mailto添加附件

java - Ant 。将属性文件添加到 jar 运行时类路径

java - JAX-RS 与 RESTeasy Factory