请编写一个简单工厂模式的实际应用案例代码。
简单工厂模式(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
方法并传入需要的控件类型,就可以得到相应的控件实例。这样的设计使得创建对象的过程和客户端代码分离,客户端不需要关心对象的创建细节。