美文网首页设计模式
还在用 if else 你就out 了

还在用 if else 你就out 了

作者: 逗逼程序员 | 来源:发表于2020-06-16 15:47 被阅读0次

1、简单直接 上场景:

一般来说, 我们的后台系统都有角色的概念,不同管理员权限不一样,能够执行的操作也不同。

  • 系统管理员
  • 开发人员
  • 运维人员
  • 测试人员

比如一个用户进来,我们需要根据不同的权限分别获取不同的执行权限。那么SAO操作就来了:~~~

      String result = StringUtils.EMPTY;
        if ("admin".equals(roleName)) {
            return "admin";
        } else if ("developer".equals(roleName)) {
            return "developer";
        } else if ("tester".equals(roleName)) {
            return "tester";
        } else {
            result = "unknow";
        }
        return result;

如果角色增加了,十几个 几十个角色,这样一来就非常不优雅了,别人阅读起来也是非常费劲了,你有什么好的方式来应对这种情况呢?

枚举不香嘛?

首先定义一个接口,表示不同角色所能做的操作。

public interface RoleOperation {
    String ops();
}

枚举实现该接口

public enum RoleEnum implements RoleOperation {

    ROLE_ADMIN {
        @Override
        public String ops() {
            return "admin";
        }
    },

    ROLE_DEVELOPER {
        @Override
        public String ops() {
            return null;
        }
    },

    ROLE_TESTER {
        @Override
        public String ops() {
            return "tester";
        }
    }

}

调用地方一行代码搞定:

public static String judge(String roleName) {

    return RoleEnum.valueOf(roleName).ops();

}

是不是 很 easy ~~~~

这里延伸下,实际业务场景可以使用的套路,虽然自己的业务没有套上去 哈哈哈哈哈------------------------------------

场景描述:如果根据传过来的不同业务类型, 比如:

pay_type 支付类型,weixin alipay bank 等分别走不同的处理器,

则可以先定义 注解类型,然后根据不同的注解类型来获取不同的处理器。

本人实际业务场景,传过来的不同业务类型,好烦呀,没有个统一的界定,估计是需求别人没有给我讲清楚?

当然 并不是唯一的实现方式,工程模式,策略模式都可以实现该功能。

相关文章

  • 还在用 if else 你就out 了

    1、简单直接 上场景: 一般来说, 我们的后台系统都有角色的概念,不同管理员权限不一样,能够执行的操作也不同。 系...

  • 还在用for循环你就out了

    由于某些原因,文章已经删除,打算迁移到别处,目前正在寻找更合适的平台。 请大家关注我的新公众号ar_indus,随...

  • Universe

    This is a big universe. What else is out there? What else...

  • 如何优雅的写文章?

    你还在用 word 写文章?你还在用 word 排版?你 out 了! 写作能力需要日积月累的提升,但写作方式在你...

  • 12月晨读-day2

    语音:theirmealsmeetingroll out 连读porkwhat else can youprodu...

  • “Everything”+“Clover”提高工作效率

    职场生涯中你一定有过怎么也找不到过往归档好的文件(夹)吧? 还在用windows自带的搜索工具?太out了! 你还...

  • 还在用继承吗?你out了

    对于面向对象语言,继承是其最大的特点,但是继承不是万能的,切继承有很多弊端。今天题主写这篇文章的目的,就是为了能让...

  • 还在用传单!?你已经out了

    经常有人问嗅嗅,我是XX行业的,大数据能帮我做什么? 今天嗅嗅就以生鲜供货为例,为大家讲一讲外卖平台那些事~ 生鲜...

  • 还在用pubmed吗?你out了

    我们都习惯了pubmed查阅相关文献,输入关键词,出来数百篇文献,逐个阅读题目,有选择的精读几篇。从文献计量学角度...

  • 每日小短句

    1."Be cool, be good.To be someone else's dream is out of ...

网友评论

    本文标题:还在用 if else 你就out 了

    本文链接:https://www.haomeiwen.com/subject/auzwahtx.html