快问快答: 我想听听你的想法,在命名诸如“ Foo.currentState”和“ Foo.Status”这样的字段以及类型时,什么时候使用“ State”和“ Status”,比如“ enum FooState”和“ enum FooStatus”。外面有没有讨论过什么大会?我们应该只用一个吗?如果是这样,选择哪一个,如果不是,我们应该如何选择?
他们的意思是一样的。我不认为有必要宣扬一个人对另一个人的偏好,但我通常会用“地位”这个词,因为我喜欢听起来像拉丁语和古典主义的东西。我的意思是,在我的世界里,模式的复数形式就是模式,所以对于我来说,几乎没有其他的方式。
我认为许多人使用“地位”来代表一个对象的状态,如果没有其他原因,只是“国家”指的是美国的政治分裂。
这取决于具体情况
状态通常指一个实体的整个状态——在特定时间点(通常是当前)的所有值和关系
状态更多的是一个时间点,比如,某些东西在流程或工作流中——它是脏的(因此需要保存) ,它是完成的,它是挂起的输入,等等
状态更多的是一个时间点,比如,某些东西处于流程或工作流中——它是否肮脏(因此需要保存) ,它是否完成,它是否挂起输入等等
我希望这对你的决定有所帮助。
诡计多端的家伙,我相信你会得到国家和地位两方面的论据。最重要的事情是你选择一个,并且只使用一个。我建议你和你的团队讨论一下,看看大家有什么共识。
假设你使用的是面向对象程序设计语言,对象的“状态”由对象本身表示。SomObject.state 会误导 imo。我不确定在你的例子中“状态”代表什么,但我的本能直觉是喜欢这个而不是陈述。
不久前我们就我现在的项目进行了一场辩论。我真的没有偏好,但一致性是一个重要的考虑因素。
在我的 Sharp PW-E550(一本很棒的字典,我可以加上)中,“状态”的第一个(有几个)定义是“某人或某物在特定时间处于的特定状态”“地位”的第一个定义是“某人或某事的相对社会地位、职业地位或其他地位”。即使是第二个(也是最后一个)关于“地位”的定义,在这个上下文中也不如“状态”: “事务在特定时间的位置,尤指。”。在政治或商业背景下。”
因此,如果我们想让某人使用我的字典(它使用的是2001年的新牛津美国词典)尽可能简单,“ state”将是最佳选择。
此外,“四人帮”的书《状态模式》中描述了一种设计模式,该模式在计算词典中牢固地确立了这个术语。
基于这些原因,我建议使用“状态”。
附注: 是你吗 DDM? 你还在为“国家”和“地位”的对立而痛苦吗? ! ! ! ! ! ! ! LMAO!
通常我将使用 State 来表示一个对象或系统作为一个整体的当前状态。我使用状态来表示某个操作的结果。例如,对象的状态可能被保存/未保存,有效/无效。方法的状态(结果)是成功的/不成功的/错误的。我认为这与状态的定义“ 有关情况的说明或条件”非常吻合,本例中的情况是动作/方法的应用。
因此,对于一组相互之间没有任何隐式排序或位置的状态,我将使用 国家,而对于那些有隐式排序或位置的状态,我将使用 地位(也许是非待机状态?).但这是一个微妙的区别。
我处理的许多实体(帐户、客户)可能有一个 State (TX、 VA 等)和一个 Status (Active、 Close 等)
theCustomer.State = Customer.Status.Active;
因此,这个术语具有误导性的观点是可能的。我们有一个标准化的数据库变数命名原则(不是我个人的选择) ,其中一个状态名为 ST_CD,一个状态名为 ACCT_STAT_CD。
ST_CD
ACCT_STAT_CD
如果你在一个动态的环境中,我会更担心!
对于 OO 环境中的枚举,这个问题并不重要,因为如果您有严格的类型安全性,编译器将确保没有人尝试这样做:
如果你正在处理一个领域,其中国家机器或其他国家信息和术语是主要的,那么我会认为国家是完全没有问题的。
另一个(完全务实的)倾向于国家而非地位的理由是,复数形式直截了当:
相信我,你迟早会有一个列表或者数组或者任何状态在你的代码中,你必须给变量命名。
你在做什么
根本不是一回事。“停止”和“开始”是状态。“停止”和“开始”是状态。
如果你让他们相同的事情,你如何描述车辆停止,但目前正在启动。或者当前提交但尚未进入审批程序或正在被批准但目前处于等待签名的错误条件中的申请?
我认为你可以在这个等式中加入另一个视角,即“发送者-请求者”。
- 你的情况如何?-我很放松。
从发送者的角度来看,我愿意与任何愿意倾听的人交流我的状态。从请求者的角度来看,我是在询问某人的状态。
我很确定这只是一种解释,可能不适用于你的特殊情况。