14.架构基础-JAVA设计模式-行为型-策略模式

本文介绍了策略模式在任务调度中的应用,展示了如何通过抽象策略接口定义统一执行方法,以及多个具体策略类实现不同的任务,如日数据同步、日终批量任务、放款统计和月用户活跃值统计。通过统一入口类根据传入参数执行相应任务,实现任务执行的灵活性。
摘要由CSDN通过智能技术生成

策略模式定义及结构:

策略模式定义:策略模式为一系列父类与子类的关系,为一系列子类提供统一方法,一个父类多个子类,由执行类作为统一入口,根据不同规则执行不同策略

策略模式主要由以下几个模块组成:

  • 抽象策略接口:定义一个执行的公共接口
  • 具体策略实现类:该类实现了抽象策略接口,并在各个实现类中定义不同的执行方法
  • 统一入口类:该类提供统一入口,根据用户自身需求或者传入参数执行不同的策略


模式使用案例:

策略接口类:

package com.hyt.controller.strategy;

/**
 * 此为策略接口
 */
public interface StrategyExecutor {
    void executeStrategy();
}
日数据同步任务策略:
package com.hyt.controller.strategy;

public class DataSyncTaskImpl implements StrategyExecutor{
    public void executeStrategy() {
        System.out.println("此方法执行日数据同步任务");
    }
}
日终批量任务策略:
package com.hyt.controller.strategy;

public class DayBatchTaskSeviceImpl implements StrategyExecutor{
    public void executeStrategy() {
        System.out.println("此方法执行日终批量任务");
    }
}
放款统计任务策略:
package com.hyt.controller.strategy;
public class LoanStatisticsTaskSeviceImpl implements StrategyExecutor{
    public void executeStrategy() {
        System.out.println("此方法执行放款统计任务");
    }
}
月用户活跃值统计任务策略:
package com.hyt.controller.strategy;

public class MonthUserTotalSeviceImpl implements StrategyExecutor{
    public void executeStrategy() {
        System.out.println("月用户活跃值统计任务");
    }
}

统一执行入口:当用于传入不同的type时执行不同策略

package com.hyt.controller.strategy;

public class CommonEntranceController {
    private StrategyExecutor executor;

    public void execute(Integer type){
        switch (type){
            case 1:
                //日数据同步任务
                executor = new DataSyncTaskImpl();
            case 2:
                //日终批量任务
                executor = new DayBatchTaskSeviceImpl();
            case 3:
                //放款统计任务
                executor = new LoanStatisticsTaskSeviceImpl();
            default:
                //月用户活跃值统计任务
                executor = new MonthUserTotalSeviceImpl();
        }
        //执行
        executor.executeStrategy();
    }
}

策略模式常见的运用场景:

1.工业大数据进行设备使用预测时,通过导入数据,进行机器学习,不同的数据执行不同的算法,得出不同的函数公式,如数据类型一得到公式y=ax+b,数据类型二得到公式y=ax^2+bx+c,下一次数据进来则根据入参的不同执行不同的函数策略

2.定时任务框架:配置表中配置不同的实现类,任务配置不同的执行策略

下一篇:15.架构基础-JAVA设计模式-行为型-模板方法模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂攻城师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值