5.策略设计模式

5.策略设计模式

1.概述

实现某一功能往往有多种策略(算法),通常的实现方式是把所有的策略封装在一个策略类中,客户端通过策略类的对象调用不同的策略算法,这种设计方式的缺点是随着策略数量的增加策略类会变得很复杂,而且如果增加新的策略必须修改原有的代码

2.策略设计模式的思想

  • 1.所有的策略的公共方法方法放在基接口中
  • 2.各种策略分别实现这个接口
  • 3.环境类包含一个策略对象,可以调用相对应的策略的算法
  • 3.客户端与环境类进行交互,实现相对应的策略

3.代码

  • 描述:一个简单的程序
  • 选择一种外出旅游的出行方式
  • public interface Travel {
        void travel();//旅行的算法(策略)
    }  
  • 描述:基础接口
  • public class Bus implements Travel{
        @Override
        public void travel(){
            System.out.println("乘坐公交车出行");
        }
    }  
  • 描述:乘坐公交车出行
  • public class Train implements Travel{
        @Override
        public void travel(){
            System.out.println("乘坐火车过出行");
        }
    }  
  • 描述:乘坐或称出翔
  • public class Flighjt implements Travel{
        @Override
        public void travel(){
            System.out.println("乘坐飞机出行");
        }
    }  
  • 描述:乘坐飞机出行
  • public class Context {
        private Travel travel;
        public Context(Travel travel){
            this.travel=travel;
        }
    
        //选择出行方式
        public void travel(){
            travel.travel();
        }
    }  
  • 描述:环境类,包含一个出行策略对象
  • public class Main {
        public static void main(String[] args){
            Context context=new Context(new Flighjt());
            context.travel();
        }
    }
    

 

posted @ 2017-02-25 11:24  疯狂的肉包  阅读(189)  评论(0编辑  收藏  举报