bienvenidos

La Única Fuente del Conocimiento es la Experiencia -Albert Einsten.

miércoles, 14 de noviembre de 2018

4 Pilares de POO

Fundamentos de la Programación Orientada a Objetos

Pilares

La POO tiene varios pilares para asegurar la simplicidad de código y su reutilización, y aunque diversos autores señalan diversos pilares, en este documento se considerarán los cuatro que son comunes en la mayoría de textos, estos son: Abstracción, Encapsulamiento, Herencia y Polimorfismo, las dos primeras están más relacionadas con la búsqueda de códigos simples y las dos siguientes con la reutilización.

Abstracción
Es el pilar de la POO, que permite identificar las características y comportamientos de un objeto y con los cuales se construirá la clase (plantilla).  Esto quiere decir que a través de este pilar o fundamento es posible reconocer los atributos y métodos de un objeto.
La imagen muestra en texto de color negro algunas de las características del objeto: color, tamaño, marca, son características porque todos los controles pueden tenerlas y cada objeto de este tipo tomará valores que le identifiquen; el objeto de la imagen tiene los siguientes valores: 
color: negro
tamaño: 15
marca: samsung
De igual forma, se identifican los comportamientos que en la imagen aparecen como textos de color blanco

Encapsulamiento
Es la característica de la POO que permite el ocultamiento de la complejidad del código, pertenece a la parte privada de la clase y que no puede ser vista desde ningún otro programa.
En el gráfico se representa como la complejidad del código queda oculta dentro de una caja fuerte impidiendo que quien lo utilice sin observar los detalles de cada una de las líneas que permiten el cumplimiento de una acción específica.
En realidad, el encapsulamiento está relacionado con el acceso a un código desde el código de otra clase; sin embargo en términos generales, esta representación gráfica es conveniente para comprender el concepto de encapsulamiento.
Herencia
Es el pilar más fuerte que asegura la reutilización de código, ya que a partir de esta característica es posible reutilizar (heredar) las características y comportamientos de una clase superior llamada clase padre, a sus clases hijas, denominadas clases derivadas. Esto implica que una vez desarrollado el código de una clase base, su código puede ser reutilizado por las clases derivadas.
En el gráfico, Persona es la clase Padre, que tiene como características: CI, nombre, dirección, fechaNac, genero, entre otros; y Estudiante y Profesor son las clases "Hijas", que heredan las características de la clase padre y a su vez establecen las propias de su clase.  Esto implica que no se deberán volver a definir, sino que por el simple hecho de heredarlas ya es posible utilizarlas y en el caso de los comportamientos ejecutarlos o modificarlos si es necesario.

Polimorfismo

A través de esta característica es posible definir varios métodos o comportamientos de un objeto bajo un mismo nombre, de forma tal que es posible modificar los parámetros del método, o reescribir su funcionamiento, o incrementar más funcionalidades a un método.
En el gráfico se observa que todas son figuras geométricas por lo que pueden incluirse en una clase Padre, por lo que la clase deberá tener el método Área(), este método podrá ser reescrito tantas veces como figuras existan, con los parámetros correspondientes en cada clase derivada: Circulo, Triangulo y Rectángulo, o reescrita en la clase base.