Proposito | garantiza que solo hay una instancia de una clase, proporcionando un único punto de acceso a ella. Esta instancia se puede redefinir mediante herencia. |
Motivacion | Necesario que algunas clases tengan una sola instancia y que sea la propia clase responsable de ella |
Lo aplicamos cuando | -Solo debe haber una instancia de la clase y debe ser accesible a los clientes desde un punto de acceso conocido
-La unica instancia debe ser extensible por herencia, y los clientes pueden usar la instancia extendida sin modificar su codigo |
Pros | - Acceso controlado a unica instancia
- Espacio de nombres reducido
- Permite refinamiento de operaciones y la representación
- Permite numero variable de instancias
- Mas flexible que operaciones static |
Cons | - Dista mucho de ser evidente |