80%的程序员都不知道java的策略模式

本文介绍了策略模式在Java中的应用,通过实例展示了如何使用策略模式改进原本臃肿的if-else结构,遵循开闭原则,提高代码的可扩展性和可维护性。内容包括策略模式的定义、结构、优点与缺点,以及实际操作步骤。
摘要由CSDN通过智能技术生成

在讲策略模式之前,我先来讲一下我工作中遇到的一个案例:

Demo

工作中有一个项目是协同办公软件,里面有一个动态功能,需要将客户对项目的不同操作的动态即时同步出来。假设有以下四个动态:新增了xx项目,更新了xx项目,删除了xx项目,还原了xx项目。

如果是有你来做,你会怎么做?

整理了最新2020整理收集的一线互联网公司面试真题(都整理成文档),有很多干货,包含netty,spring,线程,spring cloud等详细讲解,也有详细的学习规划图,面试题整理等,我感觉在面试这块讲的非常清楚:

有需要的小伙伴可以戳这里免费领取,暗号:CSDN

在这里插入图片描述
在这里插入图片描述

我们很有可能写出下面的代码:

 
public class Message {
   
 
    public void changeMessage(int flag){
   
        if (flag.equals(MessageEnum.PROJECT_UPDATE.getCode())){
   
                // 动态显示:更新了xx项目
                messageEntity.setContent(userName+MessageEnum.PROJECT_UPDATE.getMessage()+" "+message.getName());
                messageEntity.setSource(MessageSourceEnum.SOURCE_PROJECT.getCode());
                messageEntity.setTitle(MessageEnum.MESSAGE_TITLE.getMessage());
            }
            if (flag.equals(MessageEnum.PROJECT_INSERT.getCode())){
   
                // 动态显示:新增了xx项目
                messageEntity.setContent(userName+MessageEnum.PROJECT_INSERT.getMessage()+" "+message.getName());
                messageEntity.setSource(MessageSourceEnum.SOURCE_PROJECT.getCode());
                messageEntity.setTitle(MessageEnum.MESSAGE_TITLE.getMessage());
            }
            if (flag.equals(MessageEnum.PROJECT_DELETE.getCode())){
   
                //动态显示:删除了xx项目
                messageEntity.setContent(userName+MessageEnum.PROJECT_DELETE.getMessage()+" "+message.getName());
                messageEntity.setSource(MessageSourceEnum.SOURCE_PROJECT
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值