По поводу фасада - фасад может включать в себя какие угодно методы, а не только facade :D
Главное, чтобы их наличие соответствовало самой идее паттерна - сокрытию сложности за единой точкой входа.
Чуть-чуть модифицировал исходный код. "Экспортируемая" функция start скрывает от нас сложный процесс запуска, который включает в себя некое конфигурирование и последующий старт, что соответствует принципам паттерна.
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('резкое изменение');
},
config: function(settings){
console.log('конфигурируем подсистемы');
}
};
return {
facade: function(args) {
_private.set(args.val);
_private.get();
if (args.run) {
_private.run();
}
},
start: function(){
_private.config(arguments);
_private.run();
}
}
}());