如何更好根据参数获得不同的ioc实例

假设有个接口 InterfaceA
spring 中有两个实例对象 BImpl,CImpl

有个对象User有一个属性 InterfaceA

User 中存在方法 method(String param)
当param 是B 的时候 使用BImpl 的对象做业务处理
当param 是C的时候使用 CImpl 最业务处理

有什么好方法对BImpl,和CImpl 进行管理么

我现在的方法是提供一个 静态工厂,工厂保持 ApplicationContext 的引用
User 调用工厂来实例话InterfaceA

典型的工厂方法模式
这么做没有问题,生成对象的时候都由Spring来管理了