请编写一个简单工厂模式的实际应用案例代码。

简单工厂模式(Simple Factory Pattern)并不是一种正式的设计模式,而是一种编程习惯,但是它在实际应用中非常广泛。它通常由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。

以一个UI控件库为例,我们可能需要基于用户的输入创建不同类型的控件,如按钮、文本框等。我们可以创建一个简单工厂类来生成这些不同的控件。

下面是用Java实现简单工厂模式的代码:

// 定义控件的接口
public interface Control {
    void render();
}

// 实现具体的控件类
public class Button implements Control {
    public void render() {
        System.out.println("Rendering Button");
    }
}

public class TextBox implements Control {
    public void render() {
        System.out.println("Rendering TextBox");
    }
}

// 定义简单工厂类
public class ControlFactory {
    // 根据传入的类型创建控件实例
    public static Control createControl(String type) {
        if (type == null) {
            return null;
        } else if (type.equalsIgnoreCase("BUTTON")) {
            return new Button();
        } else if (type.equalsIgnoreCase("TEXTBOX")) {
            return new TextBox();
        }
        return null;
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Control button = ControlFactory.createControl("BUTTON");
        button.render();

        Control textBox = ControlFactory.createControl("TEXTBOX");
        textBox.render();
    }
}

在这个例子中,ControlFactory是一个简单工厂,它根据传入的参数来决定创建Button还是TextBox实例。客户端代码只需调用ControlFactory.createControl方法并传入需要的控件类型,就可以得到相应的控件实例。这样的设计使得创建对象的过程和客户端代码分离,客户端不需要关心对象的创建细节。

发表评论

后才能评论