2010-08-12 2 views
2

Я работаю с классами в PHP. Когда я пишу класс, я всегда думаю: «Этот объект в основном одноразовый, это не будет продолжаться за пределами загрузки страницы». Следовательно, вся логика в моих классах в основном строится, делает несколько изменений состояния, дает некоторую обратную связь и умирает. Креветки рассола.Как персистенция изменяет архитектуру объекта?

Из-за этого я использовал исключения, чтобы бросать практически любые проблемы, потому что я не смогу взаимодействовать с объектом в случае возникновения проблемы. Вместо этого пользователь получает некоторую обратную связь на странице о том, что произошло, и затем они повторно представляют форму или что-то еще. В любом случае объект вот-вот умрет за несколько миллисекунд, и я не смогу получить больше информации для обработки ошибки.

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

Обратите внимание, что я прошу не «Как объекты ведут себя по-другому в PHP с других языков?» а скорее: «Когда вы пишете объект в PHP (или в других непостоянных средах), как эти объекты отличаются от того, когда они могут сохраняться?»

+0

Интересный вопрос. (Интересно, какие последствия не позволяют избавиться от ресурсов, чтобы помочь в сборе мусора и т. Д.). У меня возникнет соблазн для сообщества. –

+0

Вы также можете сохранить объект в PHP, я бы просто удалил любое упоминание о PHP, это просто не имеет отношения к проблеме под рукой. –

+0

@Vinko. Я думаю, что это распространено в том, чтобы использовать нерезидентные объекты в PHP ... какие другие среды не сохраняющиеся объекты? – user151841

ответ

0

Я подозреваю, что один ключевой аспект будет относиться к управлению ресурсами, причем файловые дескрипторы и память являются очевидными подозреваемыми. (С точки зрения PHP, я полагаю, что вы отменили бы большие массивы и объекты, которые еще не нужны).

Это говорит о том, что хороший программист в любом случае будет кодировать таким образом - оставляя открытыми дескрипторы файлов и т. д. - это довольно дрянная практика, даже если вы знаете, что время выполнения позаботится о таких вещах для вас.