Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使工厂类可扩展?_Java_Design Patterns_Factory Pattern - Fatal编程技术网

Java 如何使工厂类可扩展?

Java 如何使工厂类可扩展?,java,design-patterns,factory-pattern,Java,Design Patterns,Factory Pattern,我正在设计一个使用factory设计模式的简单应用程序。我下面->答案取决于工厂正在做什么,但在提供的示例中,您可以这样做: package tips.pattern.factory; public class ButtonFactory { private final Map<String, Button> osToButton; public ButtonFactory(Map<String, Button> osToButton) {

我正在设计一个使用factory设计模式的简单应用程序。我下面->答案取决于工厂正在做什么,但在提供的示例中,您可以这样做:

package tips.pattern.factory;
public class ButtonFactory {

    private final Map<String, Button> osToButton;

    public ButtonFactory(Map<String, Button> osToButton) {
        this.osToButton = osToButton;
    } 

    public Button createButton(String os){
        return this.osToButton.get(os);
    }
}
package tips.pattern.factory;
公共类按钮工厂{
私人最终地图按钮;
公共按钮工厂(地图按钮){
this.osToButton=osToButton;
} 
公共按钮createButton(字符串操作系统){
返回此.osToButton.get(操作系统);
}
}

您正在制作抽象工厂吗?或者只是一个混凝土工厂?有人说具体不是真正的设计模式,为了设计模式的灵活性,它需要抽象。这可能是你的问题。你看过一本关于设计模式的书,包括抽象工厂模式吗?如果没有,我建议你这样做。更多信息,请看维基百科网站上的这篇文章