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!

Anónimo dijo...

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