减少if使用

这篇具有很好参考价值的文章主要介绍了减少if使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.定义接口

public interface BusCurrentHandler {
    // 具体调用方法
    void getBusCurrents(BusCurrentVO vo);
    /**
     * 注入
     */
    void setTrendsFileService(BusTrendsFileService trendsFileService);
    void setHonorService(BusHonorService honorService);
    void setLikeService(LikeService likeService);
    void setBusTrendsDao(BusTrendsDao busTrendsDao);

}

2.接口实现类

@Service("honorsHandler")
public class HonorsHandler implements BusCurrentHandler {
    
    private LikeService likeService;

    private BusTrendsFileService trendsFileService;

    private BusHonorService honorService;

    @Override
    public void getBusCurrents(BusCurrentVO t) {
        t.setDel(AppConstants.TRUE);
        t.setCommentsCount(honorService.queryCommentCount(t.getId()));
        t.setLikeCount(likeService.getLikeCount(String.valueOf(t.getId()), AppConstants.HONOR));
        t.setFileUrls(trendsFileService.queryByTrendId(t.getId()));
        List<BusCurrentCommentVO> busHonorComments = this.honorService.queryAllComment(new BusHonorComment(t.getId()));
        busHonorComments.forEach(c -> {
            if (c.getCommenterId().equals(HttpAnalysisUtil.getUserId())) {
                c.setDel(AppConstants.TRUE);
            }
            c.setType(t.getType());
        });
        t.setComments(busHonorComments);
    }

    @Override
    public void setTrendsFileService(BusTrendsFileService trendsFileService) {
        this.trendsFileService =trendsFileService;
    }
    
    @Override
    public void setHonorService(BusHonorService honorService) {
        this.honorService = honorService;
    }

    @Override
    public void setLikeService(LikeService likeService) {
        this.likeService = likeService;

    }

    @Override
    public void setBusTrendsDao(BusTrendsDao busTrendsDao) {

    }
}

3.创建enum

public enum CommentEnum {
    TYPE1(new HonorsHandler() ,1),
    TYPE2(new TrendsHandler() ,2);
    private final BusCurrentHandler currentHandler;
    private final int type;

    CommentEnum(BusCurrentHandler currentHandler, int type) {
        this.currentHandler = currentHandler;
        this.type = type;
    }

    public int getType() {
        return type;
    }
    
    public void callService(BusCurrentVO vo, LikeService likeService, BusTrendsFileService trendsFileService, BusHonorService service, BusTrendsDao busTrendsDao){
        currentHandler.setLikeService(likeService);
        currentHandler.setHonorService(service);
        currentHandler.setTrendsFileService(trendsFileService);
        currentHandler.setBusTrendsDao(busTrendsDao);
        currentHandler.getBusCurrents(vo);
    }
}

4.service中调用文章来源地址https://www.toymoban.com/news/detail-578113.html

    @Override
    public List<BusCurrentVO> queryTrendsByCommenterId(Integer commenterId) {
        List<BusCurrentVO> busTrendsVOS = this.busTrendsDao.queryTrendsByCommenterId(commenterId);
        busTrendsVOS.forEach(t->{
            CommentEnum commentEnum = CommentEnum.valueOf("TYPE" + t.getType());
            commentEnum.callService(t,likeService,trendsFileService,honorService,busTrendsDao);
        });
        Collections.shuffle(busTrendsVOS);
        return busTrendsVOS;
    }

到了这里,关于减少if使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 🔥🔥Java开发者的Python快速进修指南:控制之if-else和循环技巧

    在我们今天的学习中,让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员,我们将跳过一些基础概念,如变量和数据类型。如果遇到不熟悉的内容,可以随时查阅文档。但在编写程序或逻辑时,if-else判断和循环操作无疑是我们经常使用的基

    2024年02月05日
    浏览(65)
  • C语言之预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif

    查了好久才知道的这个原理,记录一下吧! 参考教程 预处理命令 在接触#if、#undef这类预处理指令前,大部分都都接触过#define、#include等预处理命令,通俗来讲预处理命令的作用就是在编译和链接之前,对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分

    2024年02月02日
    浏览(41)
  • uniapp 开发小程序 减少打包体积

    部分原文:uniApp 开发小程序 减少打包体积_uniapp压缩代码_Nomal_1bit的博客-CSDN博客 随着开发页面越来越多 . 部分的静态资源图片也越来越多 导致项目体积比较大    以下以微信小程序举例  限制了每个包的大小为2m,1m=1024kb,导致无法真机调试和发布     所以产生了一个问题

    2024年02月08日
    浏览(57)
  • 大型医院云HIS系统:采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发 融合B/S版电子病历系统

    一套医院云his系统源码 采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发。融合B/S版电子病历系统,支持电子病历四级,HIS与电子病历系统均拥有自主知识产权。 文末卡片获取联系! 基于云计算技术的B/S架构的医院管理系统(简称云HIS),采用前后

    2024年02月03日
    浏览(50)
  • Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)

     前言:在最近的后端开发中,多多少少会发现有很多if-else语句,如果条件过多则会造成整体代码看起来非常臃肿,这边我就举一个我在实际开发中的例子,来进行阐述这两种模式在实际开发中我是如何运用的。 目录 一、工厂模式简介 二、简单工厂模式 2.1、UML类图

    2024年02月15日
    浏览(34)
  • 浅析switch和if(开发中这两者的优缺点;分析出优缺点在使用就能更确定自己需要使用哪个函数了)

    分析: switch是在编译阶段将子函数的地址和判断条件绑定了,只要直接将a的直接映射到子函数地址去执行就可以了, if处理起来首先要把a的值放到CPU的寄存器中,然后要把比较的值放到CPU的另一个寄存器中,然后做减法,然后根据计算结果跳转到子函数去执行,这样一来就

    2024年02月09日
    浏览(55)
  • 智能批量剪辑系统源码开发者如何减少服务器成本?

    智能混剪批量剪辑自研和接入第三方\\\"如阿里云\\\"接口的差别主要在于技术实现和功能定制。自研混剪系统需要团队投入大量时间和资源来研发和维护,并且能够根据用户需求定制和优化功能,并且较市面上的混剪工具来说输出内容效果更好,剪辑的视频效果自动查重,目前我

    2024年02月11日
    浏览(51)
  • [C语言]if语句详解

    目录 C语言初阶系列 前言 一,什么是语句? 1.1如何理解语句? 二,分支语句(选择结构) 2.1,if语句 2.2,if语句的错误的条件写法 2.2,if语句的正确的条件写法 2.3,单分支结构 2.4,双分支结构 2.5,多分支结构         2.5.1可以实现,使用的很多的嵌套但是很臃肿的写法 2.5.2简洁

    2024年02月17日
    浏览(54)
  • Go语言基础-if语句

      原文链接:  https://www.fearlazy.com/index.php/post/288.html   在目前接触的几种语言中条件语句都是必不可少的。很难想象没有条件语句要怎么写程序。   1.if语句 Go语言的条件语句和C++的很像,使用if。 其格式如下: if 表达式为true {    执行语句 } 和C++的区别是条件表达式

    2023年04月08日
    浏览(66)
  • C语言 if语句的嵌套

    在if语句中又包含一个或者多个if语句成为if语句的嵌套。 例如: 适当地缩进嵌套的语句将有助于向读者阐明含义。  但是,除非使用花括号{}来更改关联,否则else子句将与最接近的关联。 例如: 【选词填空】选择合适的内容填入空格,使嵌套的if语句的缺失部分完整。 in

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包