Je tente d'écrire un programme Java qui initialise certaines mises en page en fonction de ce que l'utilisateur sélectionne. Ce que je veux faire est d'essayer d'éviter d'écrire un tas d'instructions if afin que le code puisse être évolutif pour une utilisation future si d'autres mises en page doivent être ajoutées. J'ai entendu que la meilleure façon de mettre en œuvre ceci est l'utilisation du polymorphisme, mais ma compréhension du polymorphisme est encore un peu floue.Java: utiliser le polymorphisme pour éviter les déclarations if?
que je veux mettre en œuvre ce cas:
if (user choose layoutA) { initialize layoutA }
if (user choose layoutB) { initialize layoutB }
if (user choose layoutC) {initialize layoutC }
Je pensais à créer une interface pour les classes à mettre en œuvre. Ce qui m'embrouille, c'est comment ça marche dans main(), n'aurai-je pas encore besoin d'une instruction conditionnelle if ou switch pour savoir quelle classe instancier?
interface LayoutHandler {
public void initializeLayout();
}
class layoutA implements LayoutHandler {
public void initialize Layout {initialize layout A}
}
class layoutB implements LayoutHandler {
public void initialize Layout {initialize layout B}
}
class layoutC implements LayoutHandler {
public void initialize Layout {initialize layout C}
}
Puis quelque part dans le principal:
public static void main() {
getlayoutselectionfromuser()
if (user choose layoutA) { LayoutHandler layout = new layoutA(); }
if (user choose layoutB) { LayoutHandler layout = new layoutB(); }
if (user choose layoutC) { LayoutHandler layout = new layoutC(); }
}
Ne serait-je encore besoin d'un commutateur ou d'instruction if dans le programme principal de savoir quelle disposition l'utilisateur a choisi lors de l'exécution?
Merci!
Vous pouvez utiliser la réflexion pour éviter les instructions if toutes ensemble. – Dan