策略模式+单例+工厂解决if else问题
例如:if(情况一){业务一};
else if(情况二){业务二};
else if(情况三){业务三};
解决方案:
public interface strategy
{
public void methods(sring situation){};
}
public void oneStrategy implementation strategy
{
@override
public void methods(sring situation){业务一};
}
public void twoStrategy implementation strategy
{
@override
public void methods(sring situation){业务二};
}
public void threeStrategy implementation strategy
{
@override
public void methods(sring situation){业务三};
}
public class strategyFactory
{
static Map<string, strategy> map = new map<string, strategy>()
{ {情况一,new oneStrategy() }, {情况二,new twoStrategy() }, {情况三,new threeStrategy() } }
private static classs strategyFactoryHolder
{
private static final strategyFactory instance = new strategyFactory();
}
public strategyFactory getInstance()
{
return strategyFactory.instance;
}
public strategyFactory getStrategy(stirng situation)
{
return map.get(situation);
}
}
public static void test(stirng situation)
{
strategy s = strategyFactory.getInstance.getStrategy(stirng situation);
if( s == null)
{
return;
}
s .methods(stirng situation);
}