Edit in JSFiddle

var exports = this;

(function($){
    var mod = {};
    mod.create = function(includes){
        var result = function(){
            this.init.apply(this, arguments);
        };
        result.fn = result.prototype;
        result.fn.init = function(){};
        result.proxy = function(func){
            return $.proxy(func, this);
        };
        result.fn.proxy = result.proxy;
        result.include = function(ob){
            $.extend(this.fn, ob);
        };
        result.extend = function(ob){
            $.extend(this, ob);
        };
        if(includes) result.include(includes);
        return result;
    };
    exports.Controller = mod;
}(jQuery));

(function($){
    $(function(){
        var ToggleView = Controller.create({
            init: function(view){
                this.view = $(view);
                this.view.mouseover(this.proxy(this.toggleClass));
                this.view.mouseout(this.proxy(this.toggleClass));
            },
            toggleClass: function(e){
                this.view.toggleClass('over', e.data);
            }
        });
        new ToggleView('#view');
    });
}(jQuery));
<div id="view"></div>
#view{
    width:100px;
    height:100px;
    background:#000;
}
#view.over{
    background:#cc0000;
}

External resources loaded into this fiddle: