Я вижу во многих местах, где используется это слово Resolve
, в Dependency Injection (разрешить реализацию в интерфейсе), Package Manager (например: Resolve пакетов зависимостей), Web (например: Resolve hostname).
Итак , что делает логику кода так особенное , что делает кто - то выбрать слово Resolve
над простым Convert
или Transform
или даже Get
?
Ответы:
Разница небольшая, но постоянная. Преобразование представления в другое включает в себя получение тех же данных и их выражение в другом формате - например, шестнадцатеричное в десятичное число или строки в смешанном регистре в строчную строку. Как правило, вам не нужно ничего, кроме фиксированного набора правил, чтобы выполнить такое преобразование.
Разрешение имени обычно включает запрос к некоторому хранилищу, которое связывает имена с информацией, которая не может быть предсказана без хранилища.
google.com
может разрешить конкретный IP-адрес (на самом деле, несколько), но это случайность истории назначения IP-адресов - с таким же успехом это могло быть совершенно другое число, и нет способа сделать этот перевод, который каким-то образом привлекать хранение всего реестра или запрашивать его онлайн. Точно так же для разрешения зависимостей пакетов обычно требуется установить пакеты missig - недостаточно знать имена отсутствующих компонентов, вам нужно фактически получить их содержимое.и содержимое не предсказуемо только из имени («QMail» звучит как почтовая программа, но вы не можете предсказать его точные свойства только по имени, не устанавливая его, поскольку имя передает гораздо меньше информации, чем скомпилированная программа) ,Поэтому вы не должны использовать термин «разрешение» для чего-то, что является простым безконтекстным преобразованием данных. Зарезервируйте его для ситуаций, когда значительным количеством информации символизирует каждое имя, настолько, что единственное разумное соглашение - иметь центральный реестр для него.
источник