设计模式之策略模式

策略模式+单例+工厂解决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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值