I have 2 tax implementation classes IndianTaxCalculation
and USTAxCalculation
which have implementaions for calculateTax()
method. I need
You can create a locator service like:
public class ServiceLocator implements ApplicationContextAware
{
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext context)
{
this.context = context;
}
public static T getServiceBean(Class serviceClass, String beanName)
{
return context.getBean(beanName, serviceClass);
}
}
And your service like:
public void calculateTaxes(Client client)
{
if (client.isFromIndia())
{
ServiceLocator.getServiceBean(TaxCalculation.class, "indiaTaxBeanName").calculate(client);
}
else if (client.isFromUS())
{
ServiceLocator.getServiceBean(TaxCalculation.class, "usTaxBeanName").calculate(client);
}
}