Должны ли даты и валюты всегда передаваться как объекты? - PullRequest
1 голос
/ 06 июля 2011

Помогите мне уладить спор с коллегой ...

Мы используем Zend Framework и PHP, и большая часть данных, с которыми мы имеем дело, включает даты и цены.Я утверждал, что когда данные извлекаются (из базы данных или JSON), мы должны автоматически немедленно преобразовывать свойства даты в объекты Zend_Date и свойства цены в объекты Zend_Currency, чтобы гарантировать, что мы всегда используем возможности этихклассы при манипулировании / сравнении / отображении данных.Мой аргумент заключается в том, что он обеспечивает согласованность, и мы всегда знаем, в какой форме находятся данные.

Мой коллега утверждает, что мы должны просто оставлять данные как есть (строки) при извлечении и создавать объекты Zend_Date / Zend_Currency только тогда, когдаиспользуется в модели или представлении.

Кто прав и почему?

(Я уверен, что кто-то будет утверждать, что существует небольшая потеря оптимизации скорости при создании объектов, но в нашем случаеэто не касается.)

1 Ответ

1 голос
/ 06 июля 2011

В ОО наилучшей практикой, безусловно, будет использование объектов, поскольку они инкапсулируют состояние и поведение ожидаемой валюты / даты.

У меня нет опыта работы с Zend, но я бы предположил, что класс даты сделает некоторую проверку, чтобы убедиться, что дата является действительной датой, или сгенерирует исключение. Если вы ждете до последней минуты, чтобы преобразовать дату в объект, вы потенциально затрудняете поиск источника ошибки и все время переносите испорченные данные. Моя защитная натура хотела бы, чтобы я как можно скорее очистил данные, которые не были получены из известного надежного источника.

...