0
我正在将一些旧的过程代码转换为OOP。立即设置为对象的属性
可以说我有一些程序代码,它将记录标记为垃圾并记录完成的时间。
UPDATE
toys
SET
is_trashed = 1,
trashed_date_timestamp = NOW()
WHERE
id = ??
我推测,从OOP的各种书籍,在面向对象的范例你:
- “发现”的具体项目为对象,然后
- 修改它的属性,然后
- 使用通用的“更新”方法上的ORM映射器
这是禁忌其属性保存到分贝st以过程/数据库为中心的方法在我的代码中使用,我运行SQL查询来更新特定记录,其中db的特定值为特定更改的属性。
因此,可以说我想将此代码转换为面向对象的范例。
- 我找到它的ID我的对象,
- 修改其属性:
- 我的isTrashed属性设置为TRUE
- 我设置trashedDateTimestamp属性???
呵呵!?
当我尝试将trashedDateTimestamp属性设置为NOW它打开了一大堆问题。
- 现在是什么?我宁愿确保它是数据库时间的NOW(),而不是服务器上的NOW。
- 玩具对象的客户端如何处理获取并设置trashedDateTimestamp属性?
我可以想出很多方法来'皮肤这只猫',但想知道是否有任何模式可以解决这个问题。
或者这个特性在OO范式中被证明是不可能的,我应该使用类似'events observer'的东西来代替。
总之 - 如何将NOW以合理的精度存储到对象属性中?
我想我明白了。所以DateTime对象以某种方式与数据库上使用的时间同步? –
@JW .:不,因为你不应该介意MySQL时间(因为它不是运行你的应用程序的服务器,而是服务器的时间),把所有的时间存储为服务器时间,并且用它来完成。 –
谢谢。 _database time_是我在稳定转换到OOP工作方式期间所执行的最后一个以数据库为中心的事情之一。我会有一些辅导来帮助我放开它。 :o) –