Что означает гидратация объекта?
когда кто-то говорит о увлажнении объекта, что это значит?
Я вижу проект Java под названием Hydrate в интернете, который преобразует данные между различными представлениями (RDMS в OOPS в XML). Является ли это общим значением гидратации объекта; для преобразования данных между представлениями? Может ли это означать восстановление иерархии объектов из сохраненного представления?
3 ответов:
в отношении более общего термина гидрата
гидратация объекта-это взятие объекта, который существует в памяти, который еще не содержит никаких данных домена ("реальных" данных), а затем заполнение его данными домена (например, из базы данных, из сети или из файловой системы).
из комментариев Эрика Робертсона на этот ответ:
десериализация = = создание экземпляра + гидратация
если вы не нужно беспокоиться о повышении производительности, и вы не отлаживаете оптимизацию производительности, которая находится во внутренних компонентах API доступа к данным, тогда вам, вероятно, не нужно явно иметь дело с гидратацией. Обычно вы используете десериализации вместо этого вы можете написать меньше кода. Некоторые API доступа к данным не дают вам эту опцию, и в этих случаях вам также придется явно вызвать шаг гидратации самостоятельно.
Для немного более подробной информации о концепции Гидратация, см. ответ Эрика Робертсона по этому же вопросу.
с уважением проект Java называется hydrate
вы спросили об этой структуре конкретно, поэтому я заглянул в нее.
насколько я могу судить, я не думаю, что этот проект использовал слово "гидрат" в очень общем смысле. Я вижу его использование в названии как приблизительный синоним "сериализации". Как объяснено выше, это использование не только точно:
см.:http://en.wikipedia.org/wiki/Serialization
перевод структуры данных или состояния объекта в формат, который может быть сохранен [...] и реконструируется позже в той же или другой компьютерной среде.
Я не могу найти причину за их именем непосредственно на гидрата часто задаваемые вопросы, но я получил ключи к их намерению. Я думаю, что они выбрали название "Гидрат", потому что цель библиотеки похож на популярный звук-так Hibernate framework, но он был разработан с совершенно противоположным рабочим процессом в виду.
большинство ORMs, включая Hibernate, используют объектно-ориентированный подход к объектной модели в памяти, при этом база данных занимает второе место. Вместо этого библиотека Hydrate использует подход, ориентированный на схему базы данных, сохраняя ваши реляционные структуры данных и позволяя вашей программе работать над ними более чисто.
образно говоря, еще по поводу названия этой библиотеки:гидрата это как "сделать что-то готовое к использованию" (например, повторное увлажнение Сушеные Продукты). Это метафорическая противоположность Hibernate, что больше похоже на "откладывание чего-то на зиму" (например,Зимняя Спячка Животных).
решение назвать библиотеку гидратом, насколько я могу судить, не было связано с общим термином компьютерного программирования "гидрат".
когда используя общий термин компьютерного программирования "гидрат", оптимизация производительности обычно является мотивацией (или отладкой существующих оптимизаций). Даже если библиотека поддерживает детальный контроль над тем, когда и как объекты заполняются данными, время и производительность не являются основной мотивацией для имени или функциональности библиотеки. Библиотека, по-видимому, больше заинтересована в обеспечении сквозного сопоставления и сохранения схемы.
гидратация относится к процессу заполнения объекта данными. Объект, который еще не был гидратирован, был создан и представляет собой сущность, которая имеет данные, но данные еще не были загружены в объект. Это то, что делается по соображениям производительности.
кроме того, термин гидратации используется при обсуждении планов загрузки данных из баз данных или других источников данных. Вот несколько примеров:
можно сказать, что объект частично гидратируется, когда вы загрузили в него только некоторые поля, но не все из них. Это можно сделать, потому что эти другие поля не нужны для текущих операций. Таким образом, нет причин тратить пропускную способность и циклы процессора на загрузку, передачу и настройку этих данных, когда они не будут использоваться.
кроме того, есть некоторые ORM, такие как Doctrine, которые не гидратируют объекты при их создании, но только при доступе к данным в этот объект. Это один из методов, который помогает не загружать данные, которые не будут использоваться.
хотя это несколько избыточный жаргон, как упоминал Мерлин, по моему опыту это относится только для заполнения / заполнения объекта, а не для его создания, поэтому это полезное слово, когда вам нужно быть точным.
Comments