status or state?

编程的时候经常会需要定义某某状态,比如订单状态、事件的处理状态、

脑壳里边的对于状态的单词有 statusstate

两个的意思看着是一毛一样的,到底什么时候用哪个,还是没有区别随便用?

看看 stackexchange 上的解释

  • status is used to describe an outcome of an operation (e.g. success/fail).
  • state is used to describe a stage in a process (e.g. pending/dispatched).

status : 用来描述操作的结果,比如: 成功/失败
state: 用来描述过程的某个阶段,比如 进行中/ 已发送; 处理完成后 “进行中” 就变成 “已发送” 了

也就是说, status 描述的状态处理结果,是终态,这个状态之间不会再从 状态A 变成 状态B
state 所标示的“状态”则具有阶段性,可以从状态A变为状态B; 就如我们常遇到的订单状态

OrderState

这几个状态随着订单的处理过程向前推进,不同状态之间是可以根据业务的发生相互变化的;则适合用 state, 代码或数据库中应该命名为 OrderState

还记得设计模式中的“状态模式”吗,它里边对状态的定义也是用的 state

state pattern

相反,Status 所描述的状态,可以认为是离散的值,值确定后不能转变为其他状态;常见的例子有 http status, 随便打开一个浏览器控制台查看 网络 可以看到 http 请求的响应状态码命名就是 status code

status code

一个http请求,成功 status code 就是200 即使之后服务器挂了其他请求得到503,也和之前的那个请求没关系

再如,状态码在 spring 中的定义 HttpStatus

HttpStatus

so, 命名的时候知道如何选择了吧


参考:

  1. stackexchange state-or-status
  2. 一个关于订单状态设计的文章
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,877评论 0 38
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,418评论 0 10
  • 烟雨江南,碧玉周庄,这个中国第一水乡总是让人觉得充满古典气息和浓浓诗意,近千年的历史洗礼和文化沉淀,很显然周庄的气...
    三枚真果阅读 418评论 1 10
  • 此篇大致仍在讲解学习方面,阅读起来有点困难,既要理解字面义,也要透过这些文字去理解话背后的意思。现在看文言文章也离...
    樱苔阅读 829评论 0 0