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