domenica 14 gennaio 2007

Simulare tipi enumerativi in Java

In certi linguaggi, come ad esempio Java, non sono a disposizione i tipi enumerativi, ecco che allora posso sfruttare la potenza della programmazione ad oggetti per poter creare una classe che ne simula il funzionamento.

Per poter far ciò posso scrivere una classe autoreferenziante. Ad esempio:
class Edificio{
private Edificio(){}  /* Costruttore vuoto */

public static final Edificio Casa = new Edificio(); /* elemento del tipo Edificio*/
public static final Edificio Villa = new Edificio();

public static final Edificio Appartamento = new Edificio();

public static final Edificio Magazzino = new Edificio();

}

In questo modo potrò fare operazioni del tipo:
Edificio MioEdificio = Edificio.Casa();

oppure
Edificio MioEdificio = Edificio.Villa();

Potrebbe essere utile...

Ciao Piero

4 commenti:

  1. Ciao Piero,
    quanto tu dici è in effetti una versione del "Factory method" design pattern :)

    M

    RispondiElimina
  2. D'ho... e io che pensavo di aver trovato il modo per diventare milionario.... :-)

    RispondiElimina
  3. In ogni caso da Java 1.5 gli enumerate sono un costrutto standard del linguaggio.

    RispondiElimina
  4. Ho riscoperto un altra volta l'acqua calda... uff

    RispondiElimina