Here's a better version, show the chaining of dependencies.
#!/usr/bin/rhino


var Registry = {

    factories : {},
    instances : {},

    register:  function(name,factory){

        this.factories[name] = factory;

        this.__defineGetter__(name, function() {

            if (!this.instances[name]){
                this.instances[name] = this.factories[name]();
            }

            return this.instances[name];
        });
    }
}

Registry.register("teststring",function(){
    return "Injected";
});

Registry.register("testobj",function(){
    var that = {};
    that.string = Registry.teststring;
    that.execute = function(){
        print(that.string);
    }
    return that;
});

Registry.testobj.execute();

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to