您的位置:首页 > 编程语言 > Java开发

java设计模式-策略模式

2017-09-22 18:12 453 查看
1 所有战略的公共抽象

public interface Trategy {

    //战略抽象方法

    public void trategyContent();
}

2 具体战略 实现了1中的接口

public class Trategy1 implements Trategy {

    @Override

    public void trategyContent() {

        // TODO Auto-generated method stub

        //战略一

        System.out.println("这是战略一 ");

    }

}

3 具体战略 实现了1中的接口

public class Trategy2 implements Trategy {

    @Override

    public void trategyContent() {

        // TODO Auto-generated method stub

        //战略二

        System.out.println("这是战略二   ");

    }

}

4 相当于存放战略的箱子 每个战略放在箱子中 

// 存放战略的箱子

public class TrategyBox {

    private Trategy trategy;

    //构造函数 要使用的战略

    public TrategyBox(Trategy trategy) {

        this.trategy = trategy;

    }

    //使用战略

    public void trategyContent() {

        this.trategy.trategyContent();

    }

}

5 某人开始使用战略

// 使用战略的人

public class TestMain {

    /*

     * 策略模式,高内聚低耦合的特点也表现出来了, 还有一个就是扩展性,也就是 OCP 原则,策略类可以继续增加下去

     */

    public static void main(String[] args) {

        //拿到战略一 

        TrategyBox t1 = new TrategyBox(new Trategy1());

        System.out.println("看我使用战略一");

        t1.trategyContent();//拆开执行

        //拿到战略二

        t = new TrategyBox(new Trategy2());

        System.out.println("看我使用战略二");

        t2.trategyContent();//拆开执行

    }

}

总结 :  策略模式,高内聚低耦合的特点也表现出来了, 还有一个就是扩展性,也就是 OCP 原则,策略类可以继续增加下去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: