好吧,所以我开始一个项目,我想代表冒险家(法语中的“冒险家”),每个冒险家都是独特的,每个人都有其特殊的动作。
我想出了这个:
public abstract class Aventurier {
public abstract void specialAction();
}
public enum AvanturierE {
NAVIGATEUR("Navigateur",Navigateur.getNavigateur()),
PILOTE("Pilote",Pilote.getPilote()),
INGENIEUR("Ingenieur",Ingenieur.getIngenieur());
AvanturierE(String nom, Aventurier aventurier) {
this.aventurier = aventurier;
this.nom = nom;
}
Aventurier aventurier;
String nom;
public Aventurier getAventurier() {
return aventurier;
}
}
public class Navigateur extends Aventurier {
private Navigateur() {}
static Navigateur navigateur = new Navigateur();
public static Navigateur getNavigateur() {
return navigateur;
}
@Override
public void specialAction() {}
}
public class Pilote extends Aventurier {
private Pilote() {}
static Pilote pilote = new Pilote();
public static Pilote getPilote() {
return pilote;
}
@Override
public void specialAction() {}
}
public class Ingenieur extends Aventurier {
private Ingenieur() {
};
static Ingenieur ingenieur = new Ingenieur();
public static Ingenieur getIngenieur() {
return ingenieur;
}
@Override
public void specialAction() {}
}
它可以按预期工作,但由于它不是个人项目,我想知道它是否是有效的设计。如果没有的话,还有一个很好的选择。