Должны ли даты и валюты всегда передаваться как объекты?

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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам