Je dois utiliser un élément GUI qui dessine une image à une position d'écran spécifique. Si l'utilisateur sélectionne cette image, une bordure est dessinée autour de l'image. Maintenant, nous voulons inclure une autre bordure qui identifie les images avec une valeur spécifique pour l'utilisateur.Division du dessin d'un élément GUI
Au moment où l'élément regarde son état interne s'il est sélectionné, puis décide comment dessiner lui-même.
graphic.drawImage(icon, x, y, null);
if (selected) {
drawBorder();
}
Je n'aime pas l'idée d'en ajouter une autre sinon à cette méthode de dessin. J'ai pensé créer une nouvelle classe qui hérite du comportement de l'élément et écrase la méthode de dessin, mais cela signifie dupliquer tout le code sélectionné dans chaque classe héritée. Existe-t-il une bonne possibilité pour résoudre ce problème sans créer de sous-classe?
Je pense que vous avez raison. Sous-classer cela pour seulement deux ou trois comportements différents est une surcharge et si cela va changer plus tard, il peut être changé en une approche plus avancée. Pour l'instant j'essaye de changer le if si à un commutateur et le booléen choisi à une énumération indiquant quel comportement devrait être employé pour le dessin – Janusz
Cela semble être une idée assez sage. Une fois qu'il devient trop ingérable, vous pouvez facilement refactoriser l'instruction switch pour utiliser une approche OO plus avancée. –