• 数字的与或非处理表中的多个状态(二)


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

  • 相关阅读:
    EXCEL每次打开文件都会出现一个空白sheet1窗口
    Python基础知识之面向对象编程
    Python基础知识之模块详解
    Python基础知识之正则表达式re模块
    Python基础知识之xml模块
    Python基础知识之json&pickle模块
    Python基础知识之装饰器
    VUE-02
    VUE
    虚拟环境的搭建
  • 原文地址:https://www.cnblogs.com/biyusoft/p/3432057.html
Copyright © 2020-2023  润新知