Java设计模式:工厂方法的实践案例
工厂方法(Factory Method)是一种创建型设计模式,它定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。
下面是一个简单的Java工厂方法实践案例:
// 定义一个抽象产品类
abstract class Product {
private String name;
public Product(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
// 创建具体的工厂类
class ConcreteFactory1 extends AbstractFactory {
@Override
public Product createProduct(String type) {
if ("book".equals(type)) {
return new Book("Java编程实践");
} else if ("pen".equals(type)) {
return new Pen();
}
throw new IllegalArgumentException("Invalid product type: " + type);
}
}
// 定义抽象工厂接口
abstract class AbstractFactory {
public Product createProduct(String type) {
// 这里实现具体创建产品的逻辑
// 对于上述案例,我们直接返回具体的子类对象
return new ConcreteFactory1().createProduct(type);
}
}
// 实现具体的客户端代码
public class Client {
public static void main(String[] args) {
AbstractFactory factory = new ConcreteFactory1();
Product book = factory.createProduct("book");
System.out.println("Book Name: " + book.getName());
// 创建笔的逻辑相似,这里省略
Product pen = factory.createProduct("pen");
System.out.println("Pen: " + pen);
}
}
在这个案例中,我们定义了一个抽象产品类Product
和一个抽象工厂接口AbstractFactory
。然后创建了具体的工厂类ConcreteFactory1
和客户端代码。
当在客户端调用factory.createProduct(type)
时,会根据type
参数选择合适的子类对象进行创建。
还没有评论,来说两句吧...