Переосмысление книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»

Материал из support.qbpro.ru

Андрей Климов.


Спасибо команде переводчиков за их огромный труд. Сам перевод находится здесь

Итак, скорее всего будет не профессионально, но как есть. (А то сам забудешь и другие не вспомнят)

В главе 9 предложен клевый шаблон проектирования - фасад. Вот его скелет


var module = (function() {
  var _private = {
    i: 5,
    get: function() {
      console.log('Текущее значение:' + this.i);
    },
    set: function(val) {
      this.i = val;
    },
    run: function() {
      console.log('процесс запущен');
    },
    jump: function() {
      console.log('резкое изменение');
    }
  };
  return {
    facade: function(args) {
      _private.set(args.val);
      _private.get();
      if (args.run) {
        _private.run();
      }
    }
  }
}());

module.facade({run:true, val:10}); // Текущее значение: 10, процесс запущен

Попробуем его применить к практике. Напишу асинхронный модуль, который возвращает список всех файлов в директории и всех вложенных поддиректориях определенным расширением (.html).

Фасад для асинхронного рекурсивного чтения списка фалов в директории