Enter your keyword

Responsive Advertisement

Principios/pilares de la orientación a objetos.

 


Principios/pilares de la orientación a objetos

Existen muchos principios que se deben entender para poder ser buenos desarrolladores en modelos orientados a objetos, sin embargo, los fundamentales son:

La identidad

Es la propiedad de un objeto que permite que este sea diferente de los demás. En un sistema orientado a objeto, cada objeto tiene una identidad distinta. Esto permite trabajar con un objeto determinado sin que exista la posibilidad de confundirlo con otro y admite que puedan existir varios objetos de la misma clase al mismo tiempo. Se tiende a confundir identidad de un objeto con estado. El estado es el conjunto de valores que posee el objeto en su interior. Puede pasar que dos objetos tengan el mismo estado, pero los mismos siguen siendo totalmente identificables.

La abstracción

Es el mecanismo que permite enfocarse en los aspectos importantes de un objeto y lo que marca su diferencia con otros, obviando aquellos que son irrelevantes.

Encapsulamiento

Permite la ocultación de la información al mundo exterior y, así, asegurar que el contenido de un objeto se pueda ocultar, dejando ver solo lo que se necesita hacer público, esto se logra gracias a diferentes niveles de visibilidad o accesibilidad, estos niveles de visibilidad son:

·         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

Es una característica que reduce enormemente el esfuerzo requerido para extender el diseño de un sistema orientado a objeto existente. Para entender el polimorfismo, considerar una aplicación convencional que debe procesar tres tipos diferentes de gráficas estadísticas: dispersión, desviación estándar y el coeficiente de excesos. Una vez calculados los valores se procesa una visualización de los mismos.
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

Popular