Шаблон фасада используется для маскировки сложной логики и создания интерфейса для выполнения логики, а также для управления сторонними плагинами в приложении.

Например, мы делаем вызовы службы http в нашем приложении, чтобы получить данные с сервера. В настоящее время мы используем библиотеку «axios» для выполнения http-вызовов на каждой странице, если нужно внести изменения, заменив метод «fetch» ​​axios на JavaScript, мы должны внести изменения на всех страницах.

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

Пример кода — приложение React со страницами пользователей и сообщений

Страница пользователей — Users.js

Страница сообщений — Posts.js

Здесь мы используем axios в функциях getUsers(), getPosts() и addPosts(), теперь, если есть изменение для перехода от axios к выборке, нам нужно внести изменения во все функции, где используется axios из этих двух страниц. Поэтому вместо этого мы можем создать файл http-service.js для управления операциями этой сторонней библиотеки.

http-service.js — версия Axios

Теперь функции getUsers(), getPosts() и addPosts() будут выглядеть, как показано ниже,

Теперь обновление заменяется методом выборки, изменение можно внести в файл http-service.js, и обновление завершено.

После обновления http-service.js:

Мы можем расширить эту логику службы http для обработки маршрутов аутентификации и неавторизации, добавив токены аутентификации только с использованием запросов службы аутентификации.

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

Удачного кодирования!!!