Cómo almacenar en caché la instancia de subcomponentes dentro de componentes

Muchos de los ejemplos de Sencha Touch que encontré en línea, no se centran realmente en la encapsulación de vista adecuada. Por lo tanto, el Controlador escucha cada evento de un solo botón, incluso si el botón está profundamente anidado dentro de una vista. En otras palabras, los elementos internos de la vista se filtran a través de lo que nunca es algo bueno.

Encontré un buen tutorial que lo alienta a crear vistas significativas que escuchen eventos locales y generen eventos empresariales significativos, etc.

http://miamicoder.com/2012/how-to-create-a-sencha-touch-2-app-part-2/

Sin embargo, una cosa que realmente no pude averiguar hasta ahora es cómo almacenar mejor las instancias de componentes anidadas. Considera este ejemplo:

Ext.define("NotesApp.view.NotesListContainer", {
    extend: "Ext.Container",
    alias: "widget.noteslistcontainer",

    initialize: function () {

        this.callParent(arguments);

        var newButton = {
            xtype: "button",
            text: 'New',
            ui: 'action',
            handler: this.onNewButtonTap,
            scope: this
        };

        var topToolbar = {
            xtype: "toolbar",
            title: 'My Notes',
            docked: "top",
            items: [
                { xtype: 'spacer' },
                newButton
            ]
        };

        this.add([topToolbar]);
    },
    onNewButtonTap: function () {
        console.log("newNoteCommand");
        this.fireEvent("newNoteCommand", this);
    },
    config: {
        layout: {
            type: 'fit'
        }
    }
});

Digamos que queremos añadir un método.setSpecialUIState para nuestroNotesListContainer. Cuando se llama queremos hacer algo con elnewButton (por ejemplo, esconderlo). ¿Cómo podría acceder a lanewButton instancia sin mal usoExt.getComp() ¿para eso? ¿Puedo configurarlo como una variable de instancia? ¿Cómo es el camino canónico?

ACTUALIZAR

Acabo de intentar esto como sugirió Nikolaj Borisik.

    this._newButton = this.add([{
            xtype: "button",
            text: 'New',
            ui: 'action',
            handler: this.onNewButtonTap,
            scope: this
        }];

Eso funciona como un amuleto. Simplemente no sé si es idiomático hacerlo o si hay algún inconveniente que pueda faltar. De lo contrario, recomiendo encarecidamente hacer esto. Dejando a un lado a Sencha, es mucho mejor componer puntos de vista significativos que abstengan partes de la interfaz de usuario coherentes. Eso es mucho mejor que filtrar cada botón al controlador y tocar directamente con ellos.

Así que me pregunto si hay alguna desventaja de este enfoque?