工厂方法模式Factory Method延迟到子类来选择实现

本文介绍了一种设计模式——工厂方法模式,该模式定义了一个用于创建对象的接口,并将实例化的选择延迟到子类中实现。文章还探讨了依赖注入与控制反转的概念,以及如何使用参数化工厂方法来创建不同类型的产品对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到其子类。

工厂方法模式的解决思路就是不解决,采用无为而治的方式。
public class ExportA implements ExportApi {
  public boolean export(String data) {
System.out.println("ExportA" + data);
    return true;
  }
}

public class ExportB implements ExportApi {
  public boolean export(String data) {
System.out.println("ExportB" + data);
    return true;
  }
}

public abstract class ExportOperation {
protected abstract ExprotApi factoryMethod();

public boolean export(String data) {
ExportApi api = factoryMethod();
return api.export(data);
}
}

public class ExportOperateA extends ExportOperation {
protected ExprotApi factoryMethod() {
return new ExportA();
}
}

public class ExportOperateB extends ExportOperation {
protected ExprotApi factoryMethod() {
return new ExportB();
}
}

在客户端可以用下面代码:
ExportOperation operate = new ExportOperateB();
operate.export("data");

工厂方法模式与IoC/DI
参与者:三个参与者,一个是某个对象,一个是IoC/DI的容器,还有一个是某个对象的外部资源。
谁依赖谁:某个对象依赖于IoC/DI容器
为什么需要依赖:对象需要IoC/DI容器来提供对象需要的外部资源。
谁注入谁:IoC/DI容器注入某个对象
到底注入什么:注入某个对象需要的外部资源
谁控制谁:IoC/DI容器来控制对象。
控制什么:控制对象实例的创建。

依赖注入是从应用程序的角度描述:应用程序依赖容器创建并注入它所需要的外部资源
控制反转是从容器的角度去描述:容器控制应用程序,由容器反向地向应用程序注入其所需要的资源。

参数化工厂方法:通过给工厂方法传递参数,让工厂方法根据参数的不同来创建不同的产品对象。只要ExportOperate类继承ExportOperation ,根据参数实例化ExportApi 。

工厂方法模式很好地体现了“依赖倒置”原则。依赖倒置原则告诉我们要依赖抽象,不用依赖于具体类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值