策略模式的使用

  首先建立一个接口,用于定义通用意义上的策略可以建立任意多个继承策略接口的类,每个类定义一个策略建立一个用于执行策略的类,该类的构造方法要包含一个策略接口作为输入,这样做的好处在于在构建这个类的实例时,构造函数可以用任意一个继承策略接口的类作为输入,策略的执行方式也可以被统一起来在主函数中构建一个执行策略的类,并在构造这个类时写入要使用的策略,接着只要调用策略执行类中的执行方法便可以执行该策略

    //策略模式
    public class StrategyPattern {

    /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //随着Context()括号中内容的变化,可以执行不同的策略
            //不管策略有多少种,代码的其他部分都不用随之发生变化
            System.out.print("第一次使用:");
            new Context(new FirstBag()).operate();
            System.out.print("第二次使用:");
            new Context(new SecondBag()).operate();
            System.out.print("第三次使用:");
            new Context(new ThirdBag()).operate();
        }

    }
    //由于策略是同一类型的东西,所以先写一个策略的接口
    interface Istrategy{
        public void operate();
    }
    //接口写好之后,分别写多个策略类来继承策略接口
    class FirstBag implements Istrategy{
        public void operate(){
            System.out.println("第一个锦囊");
        }
    }  
    class SecondBag implements Istrategy{

        public void operate() {     
            System.out.println("第二个锦囊");
        }

    }
    class ThirdBag implements Istrategy{

        public void operate(){
            System.out.println("第三个锦囊");
        }
    }
    //Context类用于执行策略接口所对应的策略
    //调用Context中的operate()来执行策略
    class Context{
        private Istrategy strategy;
        Context(Istrategy strategy){
            this.strategy=strategy;
        }
        public void operate()
        {
            this.strategy.operate();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值