Thursday, July 06, 2006

Métodos Randómicos


Muchas veces sucede que tenemos que invocar un método de forma no secuencial, no asincrónica sino, más bien, randómica. Todos lenguajes de programación nos permiten generar números aleatorios. Con estos números podríamos, en un bucle, hacer llamadas a dicho método.


Por ejemplo en Java haríamos lo siguiente:


Random random = new Random ();
for ( int t=0; t <>

fooClass.fooMethod ( paramValue1, paramValue2 );

}


El ejemplo anterior obtiene un valor aleatorio y llama al método fooMethod de la clase fooClass tantas veces como el valor que se obtuvo. La desventaja de este código es que si además se desea que la llamada sea, de vez en cuando, asincrónica hay que escribir mas código y este puede tornarse engorroso algunas veces.


Bizarro provee algo llamado Randómica del método (en inglés algunos autores lo llaman Chaotic Random Method Call). Un método random o caótico se puede definir en tiempo de ejecución o por medio del keyword randomic.


Por ejemplo, usando el keyword:

Class FooClass {

randomic vacuity fooMethod1 ();
randomic asynchronic vacuity fooMethod2 ();

}


Observen que en este ejemplo el método fooMethod1 esta declarado para que se ejecute varias veces. La cantidad de veces a ejecutarse va a depender del caos con el que se haya implementado la máquina supravirtual.


Si el método se declara como en el ejemplo, solo basta llamar al método de la forma habitual. La máquina supravirtual se encarga del resto.

Por el contrario, si tenemos un método que no esta declarado de forma randomica hay que utilizar lo que en Bizarro se llama inyección del caos. La Inyección del caos puede usarse en varios aspectos, no solo a los métodos.

Un simple ejemplo de este uso es el siguiente:


fooClass.fooMethod ()<-injectChaos.onMethodCall( RANDOMIC | ASYNCHRONOUS );


Conclusión:

Esto presenta varias ventajas a la hora de programar un método. Por ejemplo programando para la Tela por Todo el Mundo (World Wide Web según algunos autores) no hace falta tener un JavaScript para realizar varios request al servidor de aplicaciones. Utilizando Bizarro es sencillo definir la misma funcionalidad en un solo lugar. De esta forma estaríamos desacoplando la lógica en un solo lugar.


0 Comments:

Post a Comment

<< Home