188

快速提问:我想听听您对在命名“Foo.currentState”与“Foo.status”等字段和“enum FooState”与“enum”等类型时何时使用“State”与“Status”的想法Foo状态”。那里有讨论过的公约吗?我们应该只使用一个吗?如果是,是哪一个,如果不是,我们应该如何选择?

4

12 回答 12

255

海事组织:

状态 == 你好吗?[好坏]

状态 == 你在做什么?[休息/工作]

于 2012-06-27T15:33:55.063 回答
119

这取决于上下文

状态通常是指一个实体的整个状态——它在特定时间点(通常是当前)的所有价值和关系

状态更像是一个时间点,例如,某个过程或工作流中的某个位置 - 它是否脏(因此需要保存)、是否完整、是否正在等待输入等

我希望这对你的决定有所帮助。

于 2009-07-22T02:50:30.670 回答
17

通常我会使用状态来表示一个对象或整个系统的当前状态。我使用状态来表示某些操作的结果。例如,对象的状态可能是已保存/未保存、有效/无效。方法的状态(结果)是成功/不成功/错误。我认为这与将状态定义为“与情况有关的状态或条件”非常吻合,在这种情况下,情况是行动/方法的应用。

于 2009-07-22T03:13:25.233 回答
8

另一个(完全实用的)更喜欢状态而不是状态的原因是复数很简单:

  • 状态 -> 状态
  • 状态 -> 状态

相信我,你迟早会在你的代码中有一个列表或数组或任何状态,并且必须命名变量。

于 2011-08-05T17:27:30.633 回答
4

我认为许多人使用“状态”来代表一个对象的状态,如果没有其他原因,只是“状态”指的是美国的政治分裂。

于 2009-07-22T02:50:20.373 回答
3

我认为您可以在等式中添加另一个视角,即“发送者-请求者”。

从发件人的角度来看,我会与任何愿意倾听的人交流我的状态。从请求者的角度来看,我会询问某人的状态。

以上也可以从不确定的角度来解释:

  • 定义 = 状态
  • 未定义 = 状态

你是什​​么状态?我处于轻松的状态。

我很确定这只是一种解释,可能不适用于您的特定情况。

于 2013-07-16T13:54:14.170 回答
2

快速查字典会发现 status 是 state 的同义词,但对相对于其他位置的位置有额外的解释。

因此,我会将state用于一组没有任何隐含顺序或相对于彼此的位置的状态,而将status用于那些没有任何隐含顺序或位置的状态(可能是 off-standby-on ?)。但这是一个很好的区别。

于 2009-07-22T03:46:45.650 回答
1

我处理的许多实体(帐户、客户)可能有状态(TX、VA 等)和状态(活动、关闭等)

因此,关于该术语具有误导性的观点是可能的。我们有一个标准化的数据库命名约定(不是我个人的选择),其中一个状态被命名ST_CD,一个状态是ACCT_STAT_CD.

对于 OO 环境中的枚举,这个问题并不那么重要,因为如果您有严格的类型安全,编译器将确保没有人尝试这样做:

theCustomer.State = Customer.Status.Active;

如果您处于动态环境中,我会更加担心!

如果您正在处理状态机或其他状态信息并且该术语占主导地位的域,那么我认为状态非常好。

于 2009-07-22T03:57:18.813 回答
0

不久前,我们就我当前的项目进行了确切的辩论。我真的没有偏好,但一致性是一个重要的考虑因素。

在我的夏普 PW-E550(一本很棒的字典,我可能会补充)中,“状态”的第一个(有几个)定义是“某人或某物在特定时间所处的特定条件”。“地位”的第一个定义是“某人或某物的相对社会、专业或其他地位”。在这种情况下,即使是“状态”的第二个(也是最后一个)定义也不如“国家”:“特定时间的事务位置,特别是在政治或商业环境中”。

因此,如果我们希望使用我的词典(它使用新牛津美国词典,2001 年)的人尽可能简单,“州”将是最佳选择。

此外,四人帮的书中描述了一种设计模式,称为状态模式,在计算词典中牢固地确立了这个术语。

由于这些原因,我建议使用“状态”。

PS你是DDM吗?你还在为“状态”和“状态”而苦恼吗?!!!!!!!!!LMAO!

于 2009-07-22T03:04:35.530 回答
-2

根本不是一回事。停止和启动是状态。停止和启动是状态。

如果您使它们相同,您如何将车辆描述为已停止但当前正在启动。还是当前已提交但尚未进入审批流程的申请,或正在审批但当前处于等待签名错误状态的申请?

于 2012-10-23T02:13:33.387 回答
-3

嗯,它们的意思是一样的。我认为没有必要宣传一个人对另一个人的极大偏好,但我通常会选择“身份”,因为我喜欢听起来很拉丁化和古典主义的东西。我的意思是,在我的世界里,schema 的复数形式是 schemata,所以对我来说几乎没有其他方法可以使用。

于 2009-07-22T02:50:13.387 回答
-3

Sophistifunk,我相信你会得到关于状态和状态的论据。要做的最重要的事情是你选择一个,并且只使用一个。我建议与您的团队讨论这个问题,看看每个人都同意什么。

也就是说,我的建议如下。

假设您使用的是面向对象的编程语言,则对象的“状态”由对象本身表示。SomeObject.state 会误导 imo。我不确定你的例子中的“状态”代表什么,但我的直觉是更喜欢这个状态。

于 2009-07-22T02:50:54.507 回答