martes 19 de agosto de 2008

Acoplamiento entre clases

Es la dependencia que tiene un objeto de otro para realizar una determinada tarea, esta dependencia puede ser voluntaria (que deseemos que exista) o involuntaria (sin querer, generamos un acoplamiento que nos puede traer mas de un dolor de cabeza).
Siempre hay que tratar de mantener un buen nivel de acoplamiento, y que este no dificulte el mantenimiento o modificación del código.
Veamos un ejemplo.

Acoplamiento involuntario: Generalmente pasa cuando estamos desarrollado la interfaz grafica, ver esto: imaginemos (por que no tengo el capturador de pantallas ni el Fireworks) un formulario/ventana y en el hay 4 rabiobuttons y un botón. Si la accione a realizar depende del activación de uno de las radiobutton y luego apretar aceptar.
Es muy común ver que el programador escribe el código haciendo una llamada la propiedad o método que verifica el estado del radiobutton cada uno con su if.
Código del botón

If radiobutton_1.checked=true then
accion_1
End if

If radiobutton_2.checked=true then
accion_2
end if

If radiobutton_3.checked=true then
accion_3
end if

If radiobutton_4.checked=true then
accion_4
end if

Si ahora los radiobutton pasan a ser una lista desplegable, el alto acoplamiento entre las clases visuales, genera que la actualización o mantenimiento del código sea muy engorroso, para salvar este “error” de diseño se utiliza una variable "visible" por los objetos. La cual será seteada por algún evento del control o clase interactivo y leída por el control (botón) que ejecuta la acción.
Los radiobuttons quedarían así:
Evento clicked (PB)
If checked=true then
Variable_visible_por_todas_las_clase=1
End if

Y el botón tendrá el siguiente código

Choose case Variable_visible_por_todas_las_clase
Case 1
Accion()
Case 2
Accion()
End choose

Así logramos un código prolijo, entendible y manejable. Es decir bien diseñado

2 comentarios:

mppfiles dijo...

nuu cómo

http://www.taringa.net/posts/downloads/1434607/WinSnap-2_1_5---Buen-capturador-de-pantalla.html

urgente!

Guty dijo...

Para mi acoplamiento entre clases es algo así como la pareja Tevez-Natalia Fassi.