Patrones de diseño OOP

Dentro del desarrollo de software, existen algunos problemas que la mayoria de los programadores enfrentamos y que ademas se abordan de forma regular, muchos de estos ya se han estudiado, se denominan “patrones de diseño” y se dan algunas soluciones comunes para todos ellos, es por esto que conocer los patrones de diseño nos puede ahorra un montón de tiempo en el desarrollo de software. Vamos a tener una mirada más cercana a los patrones de diseño.


Ustedes se daran cuenta que muchos de nosotros usamos estas tecnicas sin saber que son realmente patrones de diseño, yo mismo, desde que comenze a desarrollar software he utilizado algunas “técnicas”, que más tarde, descubro que son muy similares a algunos de estos patrones. Se trata de trucos de codificación que podemos usar a diario, recuerden que no siempre tienen que inventar sus tecnicas, tal vez alguien ya soluciono sus problemas, aprovechenlo.

Los patrones de diseño tienen como objetivo, la reutilización de ideas, no de codigo, es por esto que es importante entender bien los conceptos para poder identificar las partes de nuestros sistemas donde encajan estos patrones…

Patrones de diseño


• Estrategia (Strategy) – Define una familia de algoritmos intecambiables y nos ayuda a generar decisiones, es un excelente patron en algunos casos de herencia, permite usar relaciones ‘Has a'(‘Tiene un’) en lugar de ‘Is a'(‘Es un’)…

• Fabrica (Factory) – Define una interface para la creacion de objetos, en ocaciones en que segun un parametro se genera un objeto de un tipo u otro se puede este patron, existe el patron Abstract Factory que permite que diversas subclases definan la creación de esos objetos…

• Adaptador(Adapter) – Permite que dos clases interactuen entre si en caso de que no sean compatibles sus interfaces, este patron es muy util en casos donde existen 2 o mas desarrolladores o equipos de desarrolladores…

• Singleton – Uno de los patrones mas importantes, garantiza que solamente se genere una instancia de una Clase, este patron es muy usado y permite optimizar sistemas, tanto en velocidad como en uso de memoria…

• Iterator – Nos permite manejar y recorrer colecciones de datos de una manera mas sencilla…

• Observador(Observer) – En muchas ocaciones necesitamos que despues de cierta acción de un objeto, se dispare un proceso de otro objeto, algo asi como una notificación automatica, este patron resuelve este problema…

• Proxy – Nos permite generar versiones locales de objetos remotos…

• Decorador(Decorator) – Permite agregar funcionalidades a objetos, sin tener que modificarlos o utilizar herencia, de hecho se pueden compartir funcionalidades entre diferentes tipos de objetos…

• Registro Activo(Active Record) – Simplifica la manipulación de bases de datos…

• Fachada (Facade) – Nos permite crear una interfaz comun para diversos objetos…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *