工厂方法模式是一种常用的对象创建型设计模式,它提供了一种创建对象的标准方法,可以将对象的创建与对象的表示分离,使程序易于扩展和维护。
模式特点
- 创建对象与表示分离:将对象的创建过程封装在工厂类中,隐藏了对象的创建细节。
- 易于扩展:当需要创建新的对象时,只需扩展工厂类即可,无需修改客户端代码。
- 降低耦合度:客户端代码与具体的产品类解耦,降低了系统之间的耦合度。
应用场景
- 当系统需要创建的对象具有共同的接口,且其具体类在运行时需要动态指定时。
- 当系统需要创建的对象数量较多,且具有相同的创建逻辑时。
- 当系统需要创建的对象较为复杂,且创建过程需要分步进行时。
代码示例
以下是一个简单的工厂方法模式示例:
// 抽象产品
interface Product {
void use();
}
// 具体产品A
class ProductA implements Product {
public void use() {
System.out.println("使用产品A");
}
}
// 具体产品B
class ProductB implements Product {
public void use() {
System.out.println("使用产品B");
}
}
// 抽象工厂
interface Factory {
Product createProduct();
}
// 具体工厂A
class FactoryA implements Factory {
public Product createProduct() {
return new ProductA();
}
}
// 具体工厂B
class FactoryB implements Factory {
public Product createProduct() {
return new ProductB();
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Factory factory = new FactoryA();
Product product = factory.createProduct();
product.use();
}
}
更多设计模式内容,请访问设计模式教程。