Хорошо, поэтому я начал проект и хочу представлять авантюристов («Авантюристы» по-французски), каждый из которых уникален и у каждого есть специальное действие.
Я придумал это:
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() {}
}
Он работает, как и ожидалось, но поскольку это не личный проект, я хочу знать, является ли это действительным дизайном.И если нет, если есть хорошая альтернатива.