• java常用设计模式十一:策略模式


    一、概述

    定义:策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(概念不好理解,可以看第二节的合例子)

    基本角色:

    • 环境(Context)角色:持有一个Strategy的引用,并执行策略的方法。
    • 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
    • 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为

    二、示例

    举个实际场景:一个老板(Client)要从家里去公司,让司机(Context)来开车(Strategy),可以选择线路A开车(ConcreteStrategyA),也可以选择线路B开车(ConcreteStrategyB

    1)抽象策略

    public interface Strategy {
        void drive();
    }

    2)具体策略类

    public class ConcreteStrategyA implements Strategy {
        public void drive() {
            System.out.println("从线路A开车");
        }
    }
    public class ConcreteStrategyB implements Strategy {
        public void drive() {
            System.out.println("从线路B开车");
        }
    }

    3)环境类(司机,听从老板的下发的路线执行开车)

    public class Context {
        private Strategy strategy;
        public Context(Strategy strategy){
            this.strategy = strategy;
        }
        public void doDrive(){
            strategy.drive();
        }
    }

    4)客户端(老板:向司机下发开车的路线)

    public class Client {
        public static void main(String[] args){
            Context context;
            context = new Context(new ConcreteStrategyA());
            context.doDrive();
            context = new Context(new ConcreteStrategyB());
            context.doDrive();
        }
    }
    从线路A开车
    从线路B开车
  • 相关阅读:
    selenium+python常用函数
    不同网络层的协议与工具
    Loudrunner编写WinSocket接口测试脚本
    python常见问题汇总
    Appium简介及工作原理
    Http协议详解
    Selenium 工作原理
    HTTP与HTTPS有哪些区别?
    【Appium】Appium工作原理(2)
    MySQL 必知必会学习笔记(常用命令二)
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/10266376.html
Copyright © 2020-2023  润新知