Что представляет собой ModelMapper и для чего используется

Содержание:

Во время разработки веб-приложения появляется много одинаковых моделей с одинаковыми функциями. Порой их необходимо конвертировать друг в друга, чтобы получить работоспособное приложение.

Что представляет собой ModelMapper и для чего используется

В самом начале проекта многие новички-разработчики используют рукописные конвертеры. Таким образом они конвертируют одну одинаковую модель с другой. Этого достаточно будет только на первых порах, когда таких моделей очень мало. Но со временем их становится все больше, да и по размерам они тоже не уступают громадным массивам. Поэтому опытные разработчики советуют новичкам переходить на эксплуатацию машинного конвертера, а не рукописного. То есть им нужно всего лишь внедрить в проект библиотеку под названием Model Mapper.

Начинающие программисты часто задают вопрос опытным о том, что такое ModelMapper. Модель маппер — это фреймворк, который позволяет разработчику легко конвертировать одну модель в другую.

Что дает программисту машинный конвертер

Модель маппер упрощает сопоставление объектов. Он самостоятельно, без ломания головы разработчиком устанавливает, какая модель будет конвертироваться с другой. Так делал бы человек, если бы создавал простой, без рефакторинга, API для обработки кода.

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

Библиотека дает разработчику API интерфейс для обработки кода. Он полностью безопасный, потому что используется фактический код, а не ссылки на строки, чтобы можно было проверить на сходство свойств и значений.

Что представляет собой ModelMapper и для чего используется

Этот фреймворк может интегрироваться с разными типами моделей данных. Например, вы сможете его внедрить в JavaBeans или JSON. Он легко интегрируется со всеми базами данных. Модель маппер делает всю рутинную работу за вас. Делает качественно и быстрее, чем ту же процедуру сможет повторить разработчик.

Как происходит сопоставление

Давайте посмотрим на то, как происходит сопоставление. Эта процедура состоит из двух шагов, которые выполняются фреймворком автоматически:

  1. Свойства исходника и целевого типа проверяются на сходство.
  2. Значения свойств переходят из источника в объект назначения.

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

Затем определяются права собственности. Эта процедура проводится в два этапа:

  1. При включенном сопоставлении полей, в первую очередь дается право доступным в соответствии с настроенным уровнем доступа и имеющим имена в соответствии с настроенным соглашением об именовании.
  2. Методы становятся приемлемыми на основе настроенных уровней доступа и условий наименования. Подходящие методы имеют приоритет над полями с тем же преобразованным именем свойства.

Фреймворк допускает методы исходника с нулевыми параметрами и типом возврата, которые недействительны, и методы назначения с одним параметром и типом возврата, которые тоже недействительны.

Дальше происходит преобразование моделей. Перед проверкой на сходство трансформаторы имен используются для превращения названий свойств в их простое имя, чтобы можно было проверить на сходство свойства источника и модели назначения. Последние могут быть названы в соответствии с различными соглашениями. Вы рассматриваете исходник посредством способа getPerson и объект назначения посредством метода setPerson. Чтобы проверить их на сходство, для трансформации названий методов в person используется преобразователь имен.

Так, реализации NameTransformer превращают имена в соответствии с соглашением об именовании. Поэтому опытные разработчики настраивают их вместе посредством JavaBeans.

Как происходит токенизация и проверка на соответствие

После трансформации идентификаторы имен используются для обозначения названий классов и свойств для проверки на сходство.

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

Простыми словами

Если говорить о работе фреймворка ModelMapper простыми словами, то опытные разработчики используют следующую формулировку.

ModelMapper проверяет поля в соответствии с AccessLevel, парсит их и бьет на токены, ища схожести между ними. Он пытается понять, подходит ли поле для трансформации одной модели в другую.

Стратегии настраивают степень точности:

  • strict — все токены располагаются в одном порядке, все токены модели исходника похожи на токены модели получателя;
  • standart — порядок токенов будет не совпадать, все токены цели должны быть похожи и только один токен источника совпадает;
  • loose — порядок токенов будет не совпадать, только один токен модели источника и получателя совпадает.

Теперь давайте посмотрим, как настроить ModelMapper. Пример настройки на скрине.

Что представляет собой ModelMapper и для чего используется

Заключение

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

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!