Patrones de diseño.

Representan las mejores practicas usadas por desarrolladores de software orientado a objetos.
Los patrones de diseño son soluciones reutilizables a problemas generales.


"Una forma de masticar consejos sobre un tema"


Download codes

Sintomas de una mal diseño.

  • Rigidez
  • Fragilidad
  • Inmovilidad
  • Viscosidad

Principios S.O.L.I.D.

  • Single responsability
  • Open-Closed
  • The liskov subtition
  • The inteface segregation
  • Dependency inversion

Clasificacion segun GoF

Builder pattern.

Patron de creacion.


Construye un objeto complejo usando objetos simples.


Separa la construccion de un objeto complejo de su representacion, por lo que el mismo proceso de construccion puede crear diferentes representaciones.

Factory pattern.

Patron de creacion.


Crea una instancia de varias clases derivadas, nos genera una capa de indexacion entre el que usa el objeto y el que lo esta creando.


Abstract factory pattern.

Patron de creacion.


Crea una instancia de varias familias de clases.

Una interfaz es responsable de la creacion de una fabrica de objetos relacionados sin especificar explicitamente sus clases. Cada fabrica genereada puede dar a los objetos de acuerdo con el Factory pattern.


Singleton pattern.

Patron de creacion.


Nos asegura que solo exista una instancia de la clase durante toda la aplicacion, de tal manera que pueda ser utilizada como referencia en el contexto adecuado.


Prototype pattern.

Patron de creacion.


Inicializa una instancia completamente para ser copiada o clonada.


Adapter pattern.

Patron de estructura.


Relaciona interaces de diferentes clases, se usa cuando queremos conectar 2 modulos que fueron construidos en tiempos diferentes o con intenciones diferentes.

Nos permite envolver la interfaz entre 2 objetos diferentes para poder comunicarlos de una manera.


Composite pattern.

Patron de estructura.


Se utiliza cuando tenemos que tratar a un grupo de objetos similares como un unico objeto.


Decorator pattern.

Patron de estructura.


Permite al usuario anadir nueva funcionalidad a un objeto existente sin alterar su estructura


Facade pattern.

Patron de estructura.


Oculta las complejidades del sistema y proporciona una intefaz para el cliente mediante la cual pueda acceder al sistema.


Brigde pattern.

Patron de estructura.


Separa la interfaz de un objeto de su implementacion.


Chain of responsability.

Patron de comportamiento.


Es una manera de pasar un peticion a una cadena de objetos receptores.

Este patron desacopla al remitente y al destinatario de una solicitud.

Observer pattern.

Patron de comportamiento.


Define una relacion de uno a muchos, de tal manera que cuando un objeto cambia de estado, los demas son notificados y actualizados automaticamente.


Command pattern.

Patron de comportamiento.


Permite que las solicitudes sean encapsuladas como objetos, lo que permite que los clientes puedan parametrizarse con diferentes peticiones.


Interpreter pattern.

Patron de comportamiento.


Proporciona una manera de evaluar gramatica o expresiones.


Memento pattern.

Patron de comportamiento.


Captura y restaura el estado interno de un objeto.


MVC pattern (Model, View, Controller).

Patron de arquitectura.


Divide una aplicacion iteractiva en un modelo, vista y controlador.