Patrones De Diseño En La Programación Orientada A Objetos
Enviado por gaudencio181 • 19 de Mayo de 2013 • 581 Palabras (3 Páginas) • 433 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
...