JQuery JavaScript Design: Função de auto-execução ou objeto literal? [fechadas]

Estou curioso para saber se existem práticas recomendadas relacionadas ao JQuery ao construir blocos de código encapsulados.

Geralmente, quando eu construo uma página eu gosto de encapsular as funções usadas dentro dessa página dentro de um objeto. Isso me permite algum encapsulamento ao criar aplicativos. Não há nada que eu odeie mais do que ver um arquivo JavaScript com um monte disso

function doSomethingOnlyRelevantOnThisPage() {
    // do some stuff
}

Isso cria um design desordenado e realmente não encapsula bem a funcionalidade.

Comumente, em muitos frameworks, existe um padrão que é usado para realizar esse encapsulamento.

Em Mootools eles favorecem a Notação Literal de Objeto:

var Site = {        
    // properties and methods
}

Na YUI eles favorecem a notação da função de auto-execução:

(function() { // properties and methods })()

O bom do segundo exemplo é que um fechamento é criado, permitindo que você defina propriedades e métodos privados.

A minha pergunta é a seguinte: Algum dos aficionados da JQuery tem alguma das melhores práticas para criar essas estruturas encapsuladas de forma limpa? Qual é a razão por trás de seu uso?

questionAnswers(3)

yourAnswerToTheQuestion