Patrones De Diseño En La Programación Orientada A Objetos
Enviado por gaudencio181 • 19 de Mayo de 2013 • 581 Palabras (3 Páginas) • 469 Visitas
La programación orientada a objetos (POO) es un paradigma en la que los sistemas se diseñan mediante clases y relaciones entre ellas. Se utilizan conceptos como la herencia, polimorfismo, abstración, encapsulamiento y ocultación. Resumidamente estas propiedades son:
Clase: Abstracción que recoge las propiedades y comportamiento de los objetos en el sistema. Una clase puede instanciarse en objetos tantas veces como se necesite.
Objeto: instancia de una clase que se relaciona con el resto de objetos a través de los métodos definidos en sus clases.
Herencia: las clases no están aisladas y se relacionan entre ellas, mediante esta propiedad forman una jerarquía en la que las clases heredan las propiedades y métodos de las clases superiores.
Polimorfismo: es la propiedad de las instancias de las clases, los objetos, por la que pueden responder de forma diferente a un mismo nombre de método en función de su tipo concreto.
Abstracción: Permite modelar una entidad del ámbito de trabajo con las características relevantes para el sistema.
Encapsulamiento: los elementos relacionados se agrupan juntos en una misma clase para aumentar la cohesión.
Ocultación: las clases tienen una interfaz a través de la cual el resto de clases interactuan con ella de forma que no necesiten conocer sus detalles y evita que clases externas modifiquen el estado de manera inesperada.
Conocer estas propiedades es importante para programar en un lenguaje orietado a objetos sin embargo no es suficiente para diseñar sistemas que sean fáciles de mantener y que permitan adaptarse a nuevos cambios sin rediseñar los sistemas.
Aquí es donde aparecen los patrones de diseño y unos principios a la hora de diseñar los sistemas OO. Los patrones de diseño son formas identificadas que resuelve de forma correcta diferentes problemas comunes a algunos escenarios. Los principios son unas guías que dirigen el diseño que realizamos y que en gran medida están presentes en los patrones de diseño.
Muy resumidamente los patrones de diseño tienen como objetivo permitir hacer frente a toda constante que posee cualquier aplicación, el cambio, de tal forma que permitan escalar a los sistemas incorporando nuevas funcionalidades y prefiriendo añadir nuevo código a modificar código existente.
Algunos principios que deberían guiar nuestras decisiones son:
Encapsula lo que varía
Favorece la composición sobre herencia
Programa sobre interfaces, no implementaciones
Abierto a extensión, cerrado a cambio
Depende sobre abstracciones, no sobre clases concretas
Conocimiento solo de clase amigas
No nos llames, nosotros te llamaremos
Una clase debería tener solo una razón para cambiarla
Inversión de dependencias
Algunos patrones identificados y que resulven de forma
...