Principios/pilares
de la orientación a objetos
La identidad
La abstracción
Encapsulamiento
·
Privado: visibilidad para la propia clase
·
Protegido: visibilidad para las clases derivadas
·
Público: visibilidad para todas las clases La utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, ya que se
tendrá a los objetos como cajas negras, donde solo se conoce el comportamiento,
pero no los detalles internos y esto es conveniente porque interesa conocer qué
se hace, pero no será necesario saber cómo se hace, además otra ventaja es
proteger al objeto de usos indebidos o inapropiados.
Modularidad
Se encarga de descomponer algo grande y complejo en partes más discretas
y sencillas. La diferencia que tiene la modularidad con la abstracción es que,
esta se encarga de gestionar su manejabilidad con respecto a los aspectos
físicos o de implementación, mientras que la abstracción trata de reducir la
complejidad lógica del problema.
Concurrencia
Es la propiedad que distingue un objeto activo de uno que no lo es. Esto
permite a diferentes objetos actuar al mismo tiempo, ya que cada uno de ellos
tiene su propia autonomía.
Persistencia
Es la propiedad que tiene un objeto de existir en el tiempo y en el
espacio. El objeto existe hasta que no sea más necesitado y el espacio que
ocupa es reutilizado. Este se implementa mediante los procesos de construcción
y destrucción de los objetos definidos como parte del comportamiento de una
clase.
Polimorfismo
Para lograrlo en una aplicación convencional, sería necesario desarrollar módulos de visualización para cada tipo de gráfica. Para resolver esto en un sistema OO, todas las gráficas se convierten en una subclase llamada gráfica estadística.
Usando un concepto llamado sobrecargar (se refiere a la posibilidad de tener dos o más funciones con el mismo nombre, pero funcionalidad diferente), cada subclase define una operación en particular que se ejecutará dependiendo del mensaje que reciba. En resumen, el polimorfismo se refiriere a la posibilidad de definir múltiples clases con funcionalidades diferentes, pero con métodos o propiedades denominados de forma idéntica.
Jerarquía
Permite la organización de los elementos de acuerdo a su tipo de objeto,
así como reconocer las similitudes y diferencias entre los distintos objetos
que se tengan. •
Herencia
Es uno de los factores claves y diferenciadores entre un sistema
tradicional y/o estructurado y los orientados a objetos. Una subclase B hereda
todos los atributos y operaciones asociadas con su superclase A. Esto significa
que todas las estructuras de datos y algoritmos originalmente diseñados e
implementados para A están disponibles de inmediato para B. La reutilización se
logra directamente.
La herencia es una forma de reutilización de código. Cualquier cambio a
los atributos u operaciones contenidos dentro de una superclase se hereda
inmediatamente para todas las subclases. Por tanto, la jerarquía de clase se
convierte en un mecanismo mediante el cual los cambios (en niveles superiores)
pueden propagarse inmediatamente a través de un sistema. Es importante observar
que en cada nivel de la jerarquía de clase pueden agregarse nuevos atributos y
operaciones a las que se heredaron de niveles superiores en la jerarquía. De
hecho, siempre que se crea una nueva clase, tendrá algunas opciones:
- La clase puede diseñarse y construirse desde cero, es decir, no se usa herencia.
- La jerarquía de clase puede revisarse para determinar si una clase superior en la jerarquía contiene más de los atributos y operaciones requeridos. La nueva clase hereda de la clase superior y, entonces, pueden agregarse adiciones, según se requiera.
- La jerarquía de clase puede reestructurarse de modo que los atributos y operaciones requeridos pueden heredarse en la nueva clase.
- Las características de una clase existente pueden ser excesivas y diferentes versiones de atributos u operaciones se implementan para la nueva clase.
No hay comentarios:
Publicar un comentario