| Experto en Información |
Asignar la responsabilidad a la clase que posee la información necesaria para realizar la tarea. |
Maximizar el encapsulamiento. |
| Creador |
Define qué clase debe instanciar a otra (B crea a A si B contiene, agrega o usa estrechamente a A). |
Controlar la lógica de creación de objetos. |
| Controlador |
El primer objeto después de la interfaz que recibe y coordina las operaciones del sistema. |
Desacoplar la UI de la lógica de negocio. |
| Bajo Acoplamiento |
Asignar responsabilidades para que las dependencias entre clases sean mínimas. |
Aumentar la reutilización y facilitar el mantenimiento. |
| Alta Cohesión |
Mantener las responsabilidades de una clase estrechamente relacionadas y enfocadas. |
Evitar clases "todopoderosas" o con tareas dispersas. |
| Polimorfismo |
Manejar variaciones de comportamiento según el tipo de objeto sin usar if o switch. |
Facilitar la extensión del sistema con nuevos tipos. |
| Fabricación Pura |
Crear clases que no existen en el dominio (como un DAO) para no romper la cohesión. |
Mantener el diseño limpio y el bajo acoplamiento. |
| Indirección |
Introducir un objeto mediador para evitar el acoplamiento directo entre dos componentes. |
Actuar como puente o adaptador. |
| Variaciones Protegidas |
Envolver los puntos de inestabilidad o cambio en una interfaz estable. |
Proteger el sistema de cambios en componentes externos. |