读书人

Javascript-设计形式之单例模式

发布时间: 2012-09-20 09:36:50 作者: rapoo

Javascript-设计模式之单例模式

/** * 单例模式一 * 个人更倾向这种,代码简介 */var Singleton = (function(){    var instantiated;    function init(){        /*singleton code here*/        return {            publicMethod: function(){                console.log('hello world');            },            publicProperty: 'test'        };    }        return {        getInstance: function(){            if (!instantiated) {                instantiated = init();            }            return instantiated;        }    };})();/*calling public methods is then as easy as:*/Singleton.getInstance().publicMethod();/** * 单例模式二 */var SingletonTester = (function(){    //args: an object containing arguments for the singleton    function Singleton(args){            //set args variable to args passed or empty object if none provided.        var args = args || {};        //set the name parameter        this.name = 'SingletonTester';        //set the value of pointX        this.pointX = args.pointX || 6; //get parameter from arguments or set default        //set the value of pointY        this.pointY = args.pointY || 10;            }        //this is our instance holder    var instance;        //this is an emulation of static variables and methods    var _static = {        name: 'SingletonTester',        //This is a method for getting an instance                //It returns a singleton instance of a singleton object        getInstance: function(args){            if (instance === undefined) {                instance = new Singleton(args);            }            return instance;        }    };    return _static;})();var singletonTest = SingletonTester.getInstance({    pointX: 5});console.log(singletonTest.pointX); // outputs 5 

读书人网 >软件开发

热点推荐