Powerd911 – Numéro #1 au Canada

Identification des noms des classes et des propriétés des objets de SAP PowerDesigner

Qu’est-ce qu’une classe abstraite?

  • Une classe abstraite ne peut pas être instanciée;
  • Une classe abstraite peut contenir des méthodes abstraites et des accesseurs – Le rôle des accesseurs est de retourner et de définir les valeurs de l’état d’un objet.
  • Une classe abstraite peut être partiellement implémentée ou pas du tout implémentée;
  • Les classes abstraites sont utiles lors de la création de composants car elles vous permettent de spécifier un niveau de fonctionnalité invariant dans certaines méthodes, tout en laissant l’implémentation d’autres méthodes jusqu’à ce qu’une implémentation spécifique de cette classe soit nécessaire.

Dans une application de dessin orientée objet, vous pouvez dessiner des cercles, des rectangles, des lignes, des courbes et de nombreux autres objets graphiques. Ces objets ont tous des états (propriétés) (par exemple: position, orientation, couleur de trait, couleur de remplissage) et des comportements (méthodes) (par exemple: déplacer vers, faire pivoter, redimensionner, dessiner). Certains de ces états et comportements sont les mêmes pour tous les objets graphiques (par exemple: position, couleur de remplissage et déplacement). D’autres nécessitent des implémentations différentes (par exemple, redimensionner ou dessiner). Tous les GraphicObjects doivent être capables de dessiner ou de redimensionner eux-mêmes. ils diffèrent simplement dans la façon dont ils le font. C’est une situation parfaite pour une super-classe abstraite. Vous pouvez tirer parti des similitudes et déclarer tous les objets graphiques hérités du même objet parent abstrait (par exemple, GraphicObject), comme illustré dans la figure suivante.

Classes Rectangle, Line, Bezier, and Circle Inherit from GraphicObject

Les classes Rectangle, Line, Bezier, et Circle hérient de GraphicObject

Tout d’abord, vous déclarez une classe abstraite, GraphicObject, pour fournir des variables et des méthodes partagées par toutes les sous-classes, telles que la position actuelle et la méthode moveTo. GraphicObject déclare également des méthodes abstraites pour des méthodes, telles que dessiner ou redimensionner, qui doivent être implémentées par toutes les sous-classes, mais doivent l’être de différentes manières. La classe GraphicObject peut ressembler à ceci:

abstract class GraphicObject 
{
int x, y;
...
void moveTo(int newX, int newY)
{
...
}
abstract void draw();
abstract void resize();
}

Chaque sous-classe non abstraite de GraphicObject, telle que Circle et Rectangle, doivent fournir des implémentations pour les méthodes draw() et resize():

class Circle extends GraphicObject 
{
void draw() { ... }
void resize() { ... }
}
class Rectangle extends GraphicObject
{
void draw() { ... }
void resize() { ... }
}

Laisser un commentaire