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

Обычное использование включает:

  • Оптимизация выполнения класса Apex Web Service Proxy
  • Упрощение выполнения пользовательских классов Apex со сложными интерфейсами
  • Предоставление единого интерфейса для выполнения функций нескольких классов (например, несколько вызовов веб-сервиса)

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

Почему Фасад?

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

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

В приведенном ниже примере кода показан фасадный класс, который вызывает многочисленные веб-службы для создания учетной записи и контакта во внешней системе:

Класс формыpublic interface Shape {
void drawShape();
}
Класс прямоугольника — public class Rectangle implements Shape {
public void drawShape() {
System.debug('Rectangle Shape::draw()');
}
}
Класс квадрата — public class Square implements Shape {
public void drawShape() {
System.debug('Square Shape::draw()');
}
}
Класс круга — public class Circle implements Shape {
public void drawShape() {
System.debug('Circle Shape::draw()');
}
}
Класс фасада — public class CreateShapeFacade {
private Shape circle;
private Shape rectangle;
private Shape square;
public CreateShapeFacade() {
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}
public void drawCircle(){
circle.drawShape();
}
public void drawRectangle(){
rectangle.drawShape();
}
public void drawSquare(){
square.drawShape();
}
}
Вызов класса Facade (через анонимное окно) – CreateShapeFacade createShape = new CreateShapeFacade();
createShape.drawCircle();
createShape.drawSquare();
createShape.drawRectangle();

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

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

Первоначально опубликовано на https://studysection.com 22 февраля 2022 г.