Cohesión en Java

La cohesión en Java es el principio orientado a objetos más estrechamente asociado con asegurarse de que una clase esté diseñada con un propósito único y bien enfocado. En el diseño orientado a objetos, la cohesión se refiere a cómo se diseña una sola clase. 

Nota: Cuanto más enfocada está una clase, mayor es la cohesión de esa clase. 

La ventaja de una alta cohesión es que tales clases son mucho más fáciles de mantener (y se cambian con menos frecuencia) que las clases con baja cohesión. Otro beneficio de la alta cohesión es que las clases con un propósito bien enfocado tienden a ser más reutilizables que otras clases. 

Ejemplo: supongamos que tenemos una clase que multiplica dos números, pero la misma clase crea una ventana emergente que muestra el resultado. Este es un ejemplo de una clase poco cohesiva porque la ventana y la operación de multiplicación no tienen mucho en común. Para hacerlo altamente cohesivo, tendríamos que crear una clase Display y una clase Multiply. La pantalla llamará al método Multiply para obtener el resultado y mostrarlo. De esta manera se desarrolla una solución altamente cohesiva.

Entendamos la estructura del programa altamente cohesivo: 

Java

// Java program to illustrate
// high cohesive behavior
 
class Multiply {
   
    int a = 5;
    int b = 5;
   
    public int mul(int a, int b)
    {
        this.a = a;
        this.b = b;
        return a * b;
    }
}
 
class Display {
    public static void main(String[] args)
    {
        Multiply m = new Multiply();
        System.out.println(m.mul(5, 5));
    }
}
Producción

25

Java

// Java program to illustrate
// high cohesive behavior
 
class Name {
    String name;
    public String getName(String name)
    {
        this.name = name;
        return name;
    }
}
 
class Age {
    int age;
    public int getAge(int age)
    {
        this.age = age;
        return age;
    }
}
 
class Number {
    int mobileno;
    public int getNumber(int mobileno)
    {
        this.mobileno = mobileno;
        return mobileno;
    }
}
 
class Display {
    public static void main(String[] args)
    {
        Name n = new Name();
        System.out.println(n.getName("Geeksforgeeks"));
        Age a = new Age();
        System.out.println(a.getAge(10));
        Number no = new Number();
        System.out.println(no.getNumber(1234567891));
    }
}
Producción

Geeksforgeeks
10
1234567891

Vista pictórica de alta cohesión y baja cohesión: 
 

Cohesion in Java

Explicación: en la imagen de arriba, podemos ver que en baja cohesión, solo una clase es responsable de ejecutar muchos trabajos que no son comunes, lo que reduce la posibilidad de reutilización y mantenimiento. Pero en alta cohesión, hay una clase separada para todos los trabajos para ejecutar un trabajo específico, lo que da como resultado una mejor usabilidad y mantenimiento.

Diferencia entre alta cohesión y baja cohesión: 

  • La alta cohesión es cuando tienes una clase que hace un trabajo bien definido. La baja cohesión es cuando una clase hace muchos trabajos que no tienen mucho en común.
  • La alta cohesión nos brinda una mejor instalación de mantenimiento y la baja cohesión da como resultado clases monolíticas que son difíciles de mantener, comprender y reducir la reutilización.

Este artículo es una contribución de Bishal Kumar Dubey . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *