• 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();
          }
      }
      
  • 相关阅读:
    【Prince2科普】Prince2的七大原则(6)
    6.08 PMO的生存挑战-这些企业的痛你遇到了吗?
    【Prince2科普】Prince2的七大原则(5)
    【Prince2科普】Prince2的七大原则(4)
    【Prince2科普】Prince2的七大原则(3)
    【Prince2科普】Prince2的七大原则(2)
    项目管理三大认证体系,该选择谁?
    事件委托
    关于js中pushstate popstate
    js中标签的获取
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6441322.html
Copyright © 2020-2023  润新知