É uma prática ruim usar o módulo requireJS como um singleto

Eu planejo usar o padrão a seguir para usar o módulo com base no requireJS para atuar como um singleton. Observe queclasse retorna uma instância do tipo 'classA', enquanto o restante das classesclassB, classC e main retorna o tipo da classe do módulo. Todas essas são classes baseadas na classe MooTools.

A idéia é usar oclasse como um singleton disponível globalmente, os métodos são apenas preenchimentos. Alguma idéia se este é um padrão aceitável de usar?

Vai voltar para me morder mais tarde? Ainda não tentei executar o r.js. no projeto, por isso estou um pouco preocupado e procure alguns conselhos.

    // classA.js
    define([], function() {
        var classA = new Class({

            initialize: function (regionId) {
                // perform some Initialization.
                this.data = null;
            },

            doSomething: function(param) {
                // some thing.
                this.data = param;
            }
        };

        return new classA();
    });

    // classB.js
    define(["classA"], function(classA) {
        var classB = new Class({

            initialize: function (regionId) {
                // perform some Initialization.
            },

            doSomethingElse: function() {
                // some thing.
                classA.doSomething("Go back to Work Now!");
            }
        };

        return classB;
    });


    // classC.js
    define(["classA"], function(classA) {
        var classB = new Class({

            initialize: function (regionId) {
                // perform some Initialization.
            },

            doSomethingElse: function() {
                // some thing.
                classA.doSomething("Time to Play!");
            }
        };

        return classC;
    });


    // main.js
    define(["classA", "classB", "classC"], function(classA, classB, classC) {
        var main = new Class({

            initialize: function (regionId) {
                // perform some Initialization.
                this.b = new classB();
                this.c = new classC();
            },

            doEverything: function() {
                // some thing.
                this.b.doSomethingElse();
                classA.doSomething("Nap Time!");
            }
        };

        return main;
    });

Muito obrigado antecipadamente ...

questionAnswers(4)

yourAnswerToTheQuestion