Acoplamiento suelto frente a acoplamiento apretado en Java: diferencia entre acoplamiento suelto y acoplamiento apretado

Publicado: 2021-05-02

Tabla de contenido

Introducción

Java es un lenguaje de programación orientado a objetos que utiliza clases y objetos. El acoplamiento juega un papel vital en Java si trabaja con clases y objetos en el lenguaje Java. El acoplamiento se refiere al grado de conocimiento que tiene un elemento en Java sobre el otro elemento. Es el grado de uso de una clase por otra clase. Este artículo le brindará una comprensión profunda del acoplamiento en Java , sus tipos con ejemplos.

¿Qué es el acoplamiento en Java?

El acoplamiento no es más que la dependencia de una clase con respecto a la otra. Si un objeto en un código usa el otro objeto en el programa, se le llama acoplamiento flexible en Java . En el acoplamiento, dos clases u objetos colaboran y trabajan entre sí para completar una tarea predefinida. Simplemente significa que un elemento requiere otro elemento para completar una función. Se conoce como colaboración cuando una clase llama a la lógica de la otra clase.

¿Cuáles son los tipos de acoplamiento?

El acoplamiento en Java es de dos tipos.

Acoplamiento suelto en Java

Cuando dos clases, módulos o componentes tienen poca dependencia entre sí, en Java se denomina acoplamiento flexible . El acoplamiento flexible en Java significa que las clases son independientes entre sí. El único conocimiento que una clase tiene sobre la otra clase es lo que la otra clase ha expuesto a través de sus interfaces en acoplamiento flexible. Si una situación requiere que se utilicen objetos desde el exterior, se denomina situación de acoplamiento flojo .

Aquí, el objeto principal rara vez usa el objeto y el objeto se puede cambiar fácilmente desde fuentes externas. El acoplamiento suelto en Java tiene ventaja sobre el acoplamiento apretado, ya que reduce el mantenimiento y los esfuerzos del código. Un cambio en una clase no requiere cambios en la otra clase y dos clases pueden funcionar de forma independiente.

Ejemplo 1: imagina que has creado dos clases, A y B, en tu programa. La clase A se llama volumen y la clase B evalúa el volumen de un cilindro. Si cambia el volumen de clase A, entonces no está obligado a cambiar la clase B. Esto se denomina acoplamiento flexible en Java . Cuando la clase A requiere cambios en la clase B, entonces tiene un acoplamiento estrecho.

Código

acoplamiento flojo del paquete;

volumen de clase {

public static void main(String args[]) {

Cilindro b = Cilindro nuevo (25, 25, 25);

System.out.println(b.getVolume());

}

}

Clase final Cilindro {

volumen int privado;

Cilindro (longitud int, ancho int, altura int) {

este.volumen = largo * ancho * alto;

}

public int getVolume() {

volumen de retorno;

}

}

Explicación: En el ejemplo anterior, la clase A y la clase B están débilmente acopladas.

Ejemplo 2

importar java.io.IOException;

interfaz Alimentos {

visualización vacía pública ();

}

clase de italiano {

alimentos;

italiano público (Comida s){

esto.s = s;

}

visualización de vacío público(){

System.out.println(“Italiano”);

s.display();

}

}

clase implementos chinos Alimentos {

chino público(){}

visualización de vacío público(){

System.out.println(“Chino”);

}

}

clase implementos mexicanos Alimentos {

público mexicano(){}

visualización de vacío público(){

System.out.println(“Mexicano”);

}

}

Prueba de clase pública {

public static void main(String args[]) lanza IOException {

Comida b = nuevo chino();

Comida c = nuevo mexicano();

Italiano a = nuevo italiano(b);

//a.display() imprimirá italiano y chino

una pantalla();

Italiano a1 = nuevo italiano(c);

//a.display() imprimirá italiano y mexicano

a1.pantalla();

}

}

Producción

italiano

chino

italiano

mexicano

Explicación: En el ejemplo anterior, las tres clases están débilmente acopladas. Simplemente significa que puede usar la interfaz de alimentos para proporcionar servicios inyectando cualquiera de los servicios implementados.

Obtenga títulos de ingeniería de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Acoplamiento apretado

Cuando dos clases son muy dependientes entre sí, se denomina acoplamiento estrecho. Ocurre cuando una clase asume demasiadas responsabilidades o cuando un cambio en una clase requiere cambios en la otra clase. En el acoplamiento estrecho, un objeto (objeto principal) crea otro objeto (objeto secundario) para su uso. Si el objeto principal sabe más acerca de cómo se implementó el objeto secundario, podemos decir que el objeto principal y el secundario están estrechamente relacionados.

Ejemplo: imagina que has creado dos clases A y B en tu programa. La clase A se llama volumen y la clase B evalúa el volumen de un cilindro. Si realiza cambios en el volumen, los mismos cambios se reflejarán en la clase B. Por lo tanto, podemos decir que ambas clases dependen en gran medida entre sí y están estrechamente relacionadas.

Código

acoplamiento apretado del paquete;

volumen de clase {

public static void main(String args[]) {

Cilindro b = Cilindro nuevo (15, 15, 15);

System.out.println(b.volumen);

}}

cilindro de clase {

volumen int público;

Cilindro (longitud int, ancho int, altura int) {

este.volumen = largo * ancho * alto; }}

Producción

3375

Explicación: En el ejemplo anterior, la clase A y la clase B están unidas y trabajan juntas como un equipo.

Diferencias entre acoplamiento flojo y acoplamiento apretado

La siguiente tabla enumera las diferencias entre el acoplamiento flojo y el acoplamiento apretado.

Bajo acoplamiento Acoplamiento apretado
Los objetos son independientes entre sí. Un objeto depende del otro objeto para completar una tarea.
Mejor capacidad de prueba La capacidad de prueba no es tan grande como el bajo acoplamiento en Java .
Comunicación asíncrona Comunicación síncrona
Menos coordinación. Intercambiar código entre dos clases no es fácil. Proporciona una mejor coordinación. Puede intercambiar código fácilmente entre dos objetos.
Sin concepto de interfaz Sigue los principios de GOF para interactuar
Menos flujo de información Más flujo de información
Altamente cambiante No tiene la capacidad de cambio.

Conclusión

En pocas palabras, el acoplamiento flexible en Java es mucho mejor en comparación con el acoplamiento estricto. Proporciona una mayor flexibilidad y reutilización del código. Como las dos clases son independientes entre sí, hace que los cambios en el código sean muy fáciles. También proporciona una mejor capacidad de prueba.

Si está interesado en obtener más información sobre el desarrollo de software, consulte la Maestría en Ciencias en Ciencias de la Computación de LJMU, que está diseñada para profesionales que trabajan y ofrece más de 12 proyectos y asignaciones, 1-ON-1 con mentores de la industria, más de 500 horas de aprendizaje.

Prepárate para una carrera del futuro

Solicite la Maestría en Ciencias en Aprendizaje Automático e IA