https://www.cnblogs.com/satire/p/14620980.html
public class StrategyFactory {
/**
* 使用策略工厂获取具体策略实现
* @param code
* @return
*/
public static PayStrategy getPayStrategy(String code) {
try {
return (PayStrategy) Class.forName(PayEnumStrategy.getClassNameByCode(code)).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
方式二: 通过Bean的name获取到对应的回调处理者
@Component
public class CallbackHandleFactory {
@Autowired
private MaphandleMap;//用于存储所有处理者
/**
* 通过Bean的name获取到对应的回调处理者
* @param handleType
* @return
*/
public CallbackHandlegetShape(String handleType) {
return handleMap.get(handleType);
}
}