Definire un array di funzioni – Trucco Java #0002

Ricordo che in linguaggio C si poteva richiamare una funzione invocandola attraverso un puntatore “che puntava” proprio a quella funzione.

In java esistono solo puntatori, è completamente fatto da puntatori che taluni arrivano a dire che questi non esistono affatto in Java.

Vogliamo definire un array di funzioni..

..ecco come fare ( http://www.rgagnon.com/javadetails/java-0005.html )

public class testf {
  public static void main(String args[]){
    Command[] commands = new Command[3];
    commands[0] = new aCommand();
    commands[1] = new bCommand();
    commands[2] = new cCommand();
    commands[0].exec();
    commands[1].exec();
    commands[2].exec();
    }
  }

  class aCommand implements Command {
    public void exec() {
      System.out.println("a");
      }
    }
  class bCommand implements Command {
    public void exec() {
      System.out.println("b");
      }
    }
  class cCommand implements Command {
    public void exec() {
      System.out.println("c");
      }
    }

  interface Command {
   void exec();
   }

L’output del programma sarà:

a
b
c

2 Responses

  1. Piu’ che un trucco e un famoso e fondamentale pattern : il command pattern. Ma credo tu lo sappia, vista la scelta di nomi ;)

  2. E invece No: ci “scivolo” su “alla grande”.. P.S: studiare i pattern.

    P.P.S: perchè all’università (ing.informatica.. mica accademia del pane.. non c’è stato mai UN professorone che abbia citato la parola “pattern” ??)

    :x

Leave a Reply