Цель шаблона проектирования фасада — предоставить сложному классу более удобный интерфейс. Это уменьшает объем кода, который необходимо поддерживать, и упрощает обслуживание. Это структурный шаблон проектирования, который скрывает сложность системы и предоставляет клиенту простой интерфейс. В этом шаблоне используется класс с именем Фасад, который предоставляет клиентам более простые методы, делегируя вызовы методам существующих классов.
Обычное использование включает:
- Оптимизация выполнения класса 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 {
Вызов класса Facade (через анонимное окно) –
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();
}
}CreateShapeFacade createShape = new CreateShapeFacade();
createShape.drawCircle();
createShape.drawSquare();
createShape.drawRectangle();
Здесь, как вы можете видеть, шаблон проектирования фасада повышает удобство сопровождения кода Apex за счет использования класса фасада для упрощения выполнения одного или нескольких сложных классов.
jQuery представляет собой древовидную структуру всех элементов веб-страницы, упрощающую синтаксис и дополнительные возможности управления такими элементами. Сертификационный экзамен по jQuery от StudySection закрепит ваши фундаментальные знания и базовое понимание jQuery как актива для улучшения ваших навыков.
Первоначально опубликовано на https://studysection.com 22 февраля 2022 г.