@undefined_title

В чем суть паттерна Facade?

Немного почитал про паттерн Facade, и хочу разобраться правильно ли я его понял, типо когда есть некоторые операции например над обьектом, и эти операции надо выполнять во многих местах приложения, но они немного могут отличаться, то здесь Facade был бы полезен? Это как бы обертка над операциями чтобы выполнять их одной строкой и не дублировать код, и с помощью параметров использовать по разному в каждой ситуации? то есть вот я написал пример на js
a = new ExampleObjeact();
a.makeSome1();
a.makeSome2();
a.makeSome3();

вместо этого мы бы писали
a = new ExampleObjeact();
makeSomething(a, makeLastSome) {
  a.makeSome1();
  a.makeSome2();
  if (makeLastSome) {
    a.makeSome3();
  }
}
makeSomething(a, true);

это фасад? правильно он реализован?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
Нет, не правильно.
Для вашего примера правильно будет:
a = new ExampleObjeact();
a.makeSomething = function(action) {
    return a[action]();
});
a.makeSomething('makeSome1');
a.makeSomething('makeSome2');
a.makeSomething('makeSome3');

Идея в том, что вы делаете один публичный метод, который принимает грубо говоря action-type. В зависимости от action вы уже делаете требуемое(возможно преобразуете аргументы и вызываете конкретную приватную функцию). Скрыает внутренний API вашего модуля за "Фасадом".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы