/ Published in: JavaScript
URL: http://blog.reindel.com/2008/12/22/the-facade-design-pattern-in-javascript/
For private variables, private methods; closed API.
Expand |
Embed | Plain Text
var modulePatternTest = (function() { var array = []; return { addToArray: function() { array.push(1,2,3,4); }, removeFromArray: function() { array.pop(); }, alertArray: function() { alert(array.length); } } })(); modulePatternTest.addToArray(); modulePatternTest.alertArray(); /*----------------- Facade Pattern ------------------*/ var DBUG = function() { _private = { getThis : function( count ) { /* ... implementation ... */ }, putThis : function() { /* ... implementation ... */ }, runThis : function() { /* ... implementation ... */ } }; return { facade : function( args ) { _private.getThis( args.count ); _private.putThis(); if ( args.runIt ) { _private.runThis(); } } } }(); window.onload = function() { DBUG.facade({ runIt : true, count : 1 }); DBUG.facade({ runIt : false, count : 2 }); } module = (function() { _privateVar = "cow"; function getter() { return _privateVar; } function setter(val) { if (!val) _privateVar = _privateVar; else _privateVar = val; } return { public_getter: getter, public_setter: setter } })(); module.public_setter('cannibalism'); console.log( module.public_getter() );
You need to login to post a comment.
