命名约定:“状态”与“状态”

时间:2009-07-22 02:44:28

标签: naming-conventions nomenclature

快速提问:我想听听你在命名“Foo.currentState”和“Foo.status”这两个字段时使用“状态”与“状态”的想法,以及类似“enum FooState”的类型vs“enum FooStatus”。有没有讨论过的会议?我们应该只使用一个吗?如果是这样,如果没有,我们应该如何选择?

12 个答案:

答案 0 :(得分:190)

IMO:

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

状态==你在做什么? [静止/工作]

答案 1 :(得分:94)

这取决于上下文

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

状态更像是一个时间点,例如,流程或工作流程中的某些东西 - 它是否脏(因此需要保存),是否完整,是待处理输入等等

我希望这可以帮助你做出决定。

答案 2 :(得分:13)

通常我会使用State来表示对象或整个系统的当前状态。我使用status来表示某些操作的结果。例如,对象的状态可以是保存/未保存,有效/无效。方法的状态(结果)是成功/不成功/错误。我认为这与状态定义为“state or condition with respect to circumstances非常吻合”,在这种情况下的情况是动作/方法的应用。

答案 3 :(得分:8)

另一种(完全务实的)偏好国家地位的原因是复数是直截了当的:

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

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

答案 4 :(得分:6)

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

答案 5 :(得分:2)

我认为你可以在等式中添加另一个视角,即'sender-requester'。

从发件人的角度来看,我会与愿意倾听的人交流我的状态。从请求者的角度来看,我会要求某人的身份。

以上也可以从不确定的角度来解释: - 定义=状态 - 未定义=状态 你的身份是什么?我处于放松状态。

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

答案 6 :(得分:1)

快速字典检查显示状态是州的同义词,但对相对于其他人的位置的其他解释

所以我会将状态用于一组相对于彼此没有任何隐式排序或位置的状态,而状态用于那些做的事情(也许off-standby-on?)。但这是一个很好的区别。

答案 7 :(得分:1)

我处理的很多实体(账户,客户)可能有州(TX,VA等)和状态(有效,已关闭等)

所以关于这个词有误导性的观点是可能的。我们有一个标准化的数据库命名约定(不是我个人选择),其中状态名为ST_CD,状态为ACCT_STAT_CD

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

theCustomer.State = Customer.Status.Active;

如果你处于一个充满活力的环境中,我会更加担心!

如果您正在处理状态机或其他状态信息以及该术语占主导地位的域名,那么我认为State完全没问题。

答案 8 :(得分:0)

我们暂时对目前的项目进行过这样的辩论。我真的没有偏好,但一致性是一个重要的考虑因素。

我的Sharp PW-E550中的第一个(有几个)“状态”的定义(我可能会添加一个很棒的字典)是“特定时间某人或某物所在的特殊情况”。 “地位”的第一个定义是“某人或某事的相对社会,职业或其他地位”。在这种情况下,即使是“地位”的第二个(也是最后一个)定义也不如“国家”:“在特定时间的事务地位,尤其是在政治或商业背景下。”

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

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

由于这些原因,我建议“陈述”。

P.S。那你是DDM吗?你仍然对“状态”与“状态”感到痛苦吗?!!!!!!! LMAO!

答案 9 :(得分:-1)

嗯,他们的确意味着同样的事情。我不认为有必要宣传一个人对另一个人的偏好,但我通常会选择“身份”,因为我喜欢听起来像拉丁语和古典主义者的东西。我的意思是,在我的世界里,模式的复数是模式,因此我没有别的办法可以去了。

答案 10 :(得分:-1)

Sophistifunk,我相信你会得到国家和地位的论据。最重要的是你选择一个,只使用一个。我建议与你的团队讨论这个问题,看看每个人都同意的事情。

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

假设您使用的是面向对象的编程语言,对象的“状态”由对象本身表示。 SomeObject.state误导了imo。我不确定你的例子中“状态”代表什么,但我的自然直觉是更愿意陈述。

答案 11 :(得分:-2)

根本不是一回事。停止并开始是州。停止和开始是状态。

如果你把它们变成同样的东西,你怎么把车辆描述为已停止但目前正在开始。或者目前提交的申请但尚未进入批准程序或正在获得批准,但目前处于等待签名的错误状态?