【问题标题】:Should dates and currencies always be passed around as objects?日期和货币是否应该始终作为对象传递?
【发布时间】:2011-07-05 23:30:44
【问题描述】:

帮我解决与同事的争执...

我们使用 Zend Framework 和 PHP,我们处理的大部分数据包括日期和价格。我一直在争论,当数据被检索(从数据库或 JSON 中)时,我们应该立即自动将日期属性转换为 Zend_Date 对象,并将价格属性转换为 Zend_Currency 对象,以确保我们始终使用这些功能操作/比较/显示数据时的类。我的论点是它确保了一致性,而且我们始终知道数据的格式。

我的同事争辩说,我们应该在检索时保留数据(字符串),并且只在模型或视图中使用时创建 Zend_Date/Zend_Currency 对象。

谁是对的,为什么?

(我敢肯定有人会争辩说,在创建对象的过程中速度优化会有一点损失,但在我们的例子中,这并不重要。)

【问题讨论】:

  • 在这里保持一致比“正确”更重要(在许多地方)。

标签: php zend-framework data-structures zend-date zend-currency


【解决方案1】:

在 OO 中,最佳实践肯定是使用对象,因为它们封装了您期望的货币/日期的状态和行为。

我对 Zend 没有经验,但我认为日期类会做一些检查以确保日期是有效日期或抛出异常。如果您等到最后一分钟才将日期转换为对象,您可能会更难找到错误的来源并一直在传输受污染的数据。我的防御本性希望我尽快清理并非来自已知可信来源的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2013-06-20
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多