La Programación Orientada a Objetos (POO) corresponde a un paradigma de programación en el cual los programas o software están conformados por Clases, las cuales se encuentran relacionadas y pueden crearse instancias llamados Objetos que se comunican pasándose mensajes.
El paradigma de la POO nos lleva a una forma o estilo especial de programar aplicaciones software. Se basa en principios y patrones fundamentales que garantizan un software de calidad. Las características que definen a un software de calidad están basadas principalmente en la facilidad de cambio o mantenimiento y la fiabilidad. Estas son características que se pueden logran con la Programación Orientada a Objetos.
Para entender el concepto, se plantea un caso en el cual se desea desarrollar un programa que permita ingresar el lado de un cuadrado y mostrar el cálculo del área.
Primero se muestra el desarrollo del programa sin aplicar POO. El código muestra la implementación de una sola clase llamada Figura y un solo método principal que resuelve el caso.
package com.sistemajava; import java.util.Scanner; public class Figura { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.println("Figura Cuadrado"); System.out.print("Ingrese el lado: "); int lado = entrada.nextInt(); int area = lado * lado; System.out.println("El área es: " + area); } }
Por último se muestra el desarrollo del programa aplicando POO. El código muestra la implementación de dos clases. Una clase llamada GestionarFigura con tres métodos, un método principal que llama a un método para ingresar datos y a otro método para mostrar datos. A parte, existe la clase Cuadrado, que representa a la figura geométrica que se desea utilizar. La clase Cuadrado tiene como atributo el lado y como método a calcularArea. El valor del atributo lado del objeto cuadrado se asigna mediante un método set y se puede recuperar mediante un método get.
package com.sistemajava; import java.util.Scanner; public class GestionarFigura { public static void main(String[] args) { GestionarFigura gestionarFigura = new GestionarFigura(); Cuadrado cuadrado = gestionarFigura.ingresarCuadrado(); gestionarFigura.consultarCuadrado(cuadrado); } private Cuadrado ingresarCuadrado(){ Scanner entrada = new Scanner(System.in); System.out.println("Figura Cuadrado"); System.out.print("Ingrese el lado: "); int lado = entrada.nextInt(); Cuadrado cuadrado = new Cuadrado(); cuadrado.setLado(lado); return cuadrado; } private void consultarCuadrado(Cuadrado cuadrado){ int area = cuadrado.calcularArea(); System.out.println("El área es: " + area); } }
La clase Cuadrado.
package com.sistemajava; public class Cuadrado { private int lado; public int getLado() { return lado; } public void setLado(int lado) { this.lado = lado; } public int calcularArea(){ return lado * lado; } }
Haciendo la comparación entre las dos implementaciones, nos damos cuenta que con POO el programa se extiende a más clases, lo cual puede dar la impresión de hacer más complejo el desarrollo. Esto puede resultar cierto siempre y cuando estemos desarrollando aplicaciones de muy baja complejidad, pero en la mayoría de los casos el software que desarrollemos tendrá complejidad media o alta, sobre todo si nos orientamos al desarrollo de aplicaciones empresariales. En tal sentido, la POO es muy útil cuando desarrollamos aplicaciones con cierta complejidad, porque va a permitir organizar mejor la aplicación, lo cual facilita los cambios o las extensiones que pueda sufrir el software a lo largo de su ciclo de vida. Por ejemplo, para el caso planteado anteriormente, a la larga sería más complicado modificar o ampliar el primer programa si se desea agregar nueva funcionalidad como calcular y mostrar la diagonal y el perímetro del cuadrado. Esto porque hay que hacer los cambios en un mismo método, lo cual puede afectar lo que ya está implementado e incluso hace más difícil las pruebas porque el método aumenta su complejidad. En cambio, para el segundo programa, resultaría más simple porque se agregaría un par de métodos a la clase Cuadrado, uno para calcular la diagonal y otro para calcular el perímetro. Esto también favorece la reutilización debido a que los métodos están claramente diferenciados en su función y no mesclando diversos cálculos en un mismo método como sucede en el primer programa.
Bueno, como conclusión final se puede decir que en la POO se garantiza un código más legible y evita el código “espagueti” como sucede en el primer ejemplo desarrollado en donde en el mismo método se está capturando datos de entrada, se está calculando y se está mostrando datos.
Bueno, como conclusión final se puede decir que en la POO se garantiza un código más legible y evita el código “espagueti” como sucede en el primer ejemplo desarrollado en donde en el mismo método se está capturando datos de entrada, se está calculando y se está mostrando datos.
Buena explicación (Y) ..!!!
ResponderEliminarChévere la explicación!!!!!
ResponderEliminar