zoukankan      html  css  js  c++  java
  • 数字的与或非处理表中的多个状态(二)

    个状态增加一个客人很满意的状态,这时我们需要这么做:
    order.State |= OrderState.客户满意; //这个时候订单的状态将会具有三种状态,既“已审核”、“已发货”,“客户满意”。
    如果客户收到了货物觉得非常不满意,要求退货,快递公司又将货物拿了回来,于是就需要将“已发货”的状态从这张订单的状态中去掉,这么操作:
    order.State ^= OrderState.已发货; //这个时候订单的状态将只剩下已审核的状态了。
    可以看出通过对枚举的与或非的操作就可以同时承载从种状态,这是为什么呢,其实所谓的枚举也都是数字而已,对它的与或非的操作也相当于对数字的与或非操作。
    好了,当我们需要统计某个列表中有多少张“已发货”的订单时,我们就可以这样子写:
    select count(*) from t_order where state=state|8
    这时得出的就是所有状态为“已发货”的订单的总计了。
    至此简单的介绍了一下如何使用数字的与或非运算来达到将不确定的客户需求中关于状态的那部分从数据库中分离出来,那是不是每次增加一种状态都要修改程序页面呢,其实也不用,我们可以将枚举隔离到配置文件或数据库中,通过反射生成枚举类型,这样子当我们再遇到客户说需要增加状态的时候,我们只需要修改一下配置或增加一条数据库记录一切都解决了。
    自从使用了这个方法后,生活变的轻松起来了

  • 相关阅读:
    阿里云 redis 通过rinetd 进行端口透传
    Linux文件系统的实现
    门外汉的IT
    被解放的姜戈05 黑面管家
    被解放的姜戈04 各取所需
    被解放的姜戈03 所谓伊人
    统计Go, Go, Go
    被解放的姜戈02 庄园疑云
    被解放的姜戈01 初试天涯
    亚马逊云架设WordPress博客
  • 原文地址:https://www.cnblogs.com/biyusoft/p/3432057.html
Copyright © 2011-2022 走看看