Software Design Patterns / Patrones de Diseño de Software


Software Patters are just “Solutions to recurring problems in software development”, its independent from the development tool and language. Better than antipatterns, We can see these as good examples on how to create good software, because almost everything is already studied and analyzed, we must take advantage of that previous knowledge and stop inventing the wheel everytime.
Patterns is not just “code reuse” its the “whole” knowledge for a solution. Thinking in all created software must “change” or “grow” to keep alive, the patterns are the best way to do these changes without reconstruct most of the code everytime.
Each time we need to create new software, a design must be applied, if We use design patterns, we can guarantee success as the pattern is being success in many projects.
There are many kinds of patterns to use, but the main goal for each one is to have the following characteristics:

1. Client should always call the abstraction (interface) and not the exact implementation.
2. Future changes should not impact the existing system.
3. Change always what is changing.
4. Have loose coupling
*Inheritance ( Very coupled )
*Composition
*Aggregation
*Association
*Dependency
*Realization ( Least couple )

Some examples of Design Patterns to search for are:
MVC (Model View Controller) separates the representation of information from the client side (user’s interaction). Must be identificable Data, Business Rules, Login and Functions.

MVP (Model View Presenter) is derivated from MVC, but the Presenter handles all the presentation logic. This facilitate automated unit testing and improve the separation of concerns in the presentation logic.

There are other propietary patterns for Microsoft’s development tools like MVVM, MVPVM. You can search them to understand specifically about them.

Summary: Design Patterns in Software Development are only templates that allow us to work quickly and safetly(for results) when creating software.

********************************************************************Español:
Patrones de Software son sólamente “Soluciones a problemas recurrentes en desarrollo de software”, es independiente de la herramienta de desarrollo y lenguaje. Mejores que los antipatrones, podemos verlos como ejemplos de cómo crear buen software, porque casi todo ya ha sido estudiado y analizado, debemos tomar ventaja de ese conocimiento previo y parar de inventar la rueda cada vez.
Los Patrones no son sólo “Reutilización de código”, son el conocimiento “completo” de una solución. Pensando en que todo software creado debe “cambiar” o “crecer” para mantenerse vivo, los patrones son el mejor camino para realizar estos cambios sin tener que reconstruir la mayoría del código en cada momento.
Cada vez que necesitamos crear nuevo software, un patrón de diseño debe ser aplicado, si lo hacemos, podemos garantizar un éxito tanto como el patrón siempre lo ha tenido en muchos proyectos.
Existen muchas clases de patrones para usar, pero el principal objetivo de cada uno debe tener las siguientes características:

1. El Cliente debe llamar la abstracción (interface) siempre y no la implementación exacta.
2. Los cambios futuros no deben impactar el sistema existente.
3. Cambiar siempre lo que necesita cambio.
4. Mantener acoplamiento flexible
*Herencia ( Muy unido )
*Composición
*Agrupamiento
*Asociación
*Dependencia
*Realización ( Menos unido )

Algunos ejemplos de Patrones de diseño para buscar son:
MVC (Modelo Vista Controlador) separa la representación de la información de la interfaz de usuario. Deben identificarse Datos, Reglas de Negocio, Acceso usuario y funciones.

MVP (Modelo Vista Presentador) derivado de MVC, pero el presentador realiza todo el manejo de presentación y lógica. Esto facilita pruebas unitarias automatizadas y mejora la separación de inquietudes de la lógica de presentación.

Existen otros patrones propietarios para herramientas de desarrollo Microsoft como son MVVM, MVPVM solo para citar algunos que no son de dominio público en cuanto a la herramienta de desarrollo.

Resumen: Los Patrones de Diseño para Desarrollo Software son solo plantillas que nos ayudan a trabajar más rápidamente y con seguridad(de resultados) cuando realizamos software.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s