Diseño de JavaScript de JQuery: ¿Función autoejecutable u objeto literal? [cerrado]

Tengo curiosidad por saber si existen prácticas recomendadas relacionadas con JQuery al construir bloques de código encapsulados.

Generalmente, cuando construyo una página, me gusta encapsular las funciones usadas dentro de esa página dentro de un objeto. Esto me permite algo de encapsulación al construir aplicaciones. No hay nada que odie más que ver un archivo JavaScript con un montón de esto

function doSomethingOnlyRelevantOnThisPage() {
    // do some stuff
}

Esto lo convierte en un diseño desordenado y no encapsula muy bien la funcionalidad.

Comúnmente en muchos marcos, hay un estándar que se utiliza para realizar esta encapsulación.

En Mootools favorecen la Notación Literal de Objetos:

var Site = {        
    // properties and methods
}

En YUI, favorecen la notación de la función de auto ejecución:

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

Lo bueno del segundo ejemplo es que se crea un cierre, lo que le permite definir propiedades y métodos privados.

Mi pregunta es la siguiente: ¿Algún aficionado de JQuery tiene las mejores prácticas para crear estas estructuras encapsuladas de manera limpia? ¿Cuál es la razón detrás de su uso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta