Vidéo: Zeitgeist: Addendum (Final Cut) 2025
Le motif Façade fournit une interface unique et simplifiée pour l'utilisation de la fonctionnalité fournie pour le développement d'applications iOS. Les façades sont souvent utilisées pour simplifier l'accès aux installations d'un sous-système. L'ensemble de code suivant utilise le motif Façade pour dessiner un graphique à secteurs en utilisant les classes Cercle, Ligne et Point pour représenter les secteurs.
Le code commence par le fichier d'interface suivant de la classe PieChart. L'initialiseur initWithViewAndSegments définit la vue englobante du graphique à secteurs, les coordonnées du centre, le rayon, le nombre de tranches et la proportion de chaque tranche. Il existe également une méthode de dessin qui dessine le graphique à secteurs dans sa vue englobante.
#import @interface PieChart: NSObject {// Variables membres @private (UIView *) enclosingView; @private int rayon; @private int numberOfSlices; @private float [] pieProportions;} - (id) initWithViewAndSegments: (UIView *) englobantView: (Point *) centre: (int) rayon: (int) nombreDeSlices: float [] pieProportions; - (nul) dessiner; // Autres opérations -d
Vous pouvez voir à quel point il est facile pour un programme client de la classe PieChart de dessiner un graphique à secteurs. Tout ce que le programme a à faire est d'initialiser le graphique en utilisant initWithViewAndSegments puis d'appeler draw.
Maintenant, comparez l'utilisation précédente d'une Façade à l'implémentation de la méthode draw (pseudo-code montré ici), ce que quelqu'un devrait utiliser directement avec les objets Circle et Line pour dessiner le camembert:
@implementation PieChart … - (void) draw { Cercle * pieChartCircle = [[Cercle alloc] initWithViewRadiusAndOrigin : enclosingView: rayon: centre]; pieChartCircle. dessiner; // dessine le cercle pour (int k = 0; k 360 degrés … // Calcule le point final de la ligne radiale depuis l'origine, la pente // et la longueur (= rayon) … // Dessine la ligne Ligne * radialLine = [[Line alloc] initWithCoordinates: enclosingView: center: endPoint]; oneLine dessine;}} …
Pour être complet, nous montrons ici les interfaces pour Circle, Line et Point:
@interface Cercle: NSObject {// Variables membres @private UIView * enclosingView; @private int rayon; @private int centreX; @private int centreY;} - (id) initWithViewRadiusAndOrigin: (UIView *) enclosingView: (int) radius: (Point *) center; - (void) draw; // Autres opérations -d @interface Line: NSObject {// Variables membres @private Point * start, * end} - (id) initWithCoordinates: (UIView *) enclosingView: (Point) * début: (Point) * fin; - (void) draw; // Autres opérations -d @interface Point: NSObject {// Variables membres @private int x, y;} - (id) initWithCoordinates: (int) x: (int) y; -d
En ce qui concerne les techniques OO et le principe s, vous pouvez clairement voir que Façade utilise largement la délégation.De plus, si une façade est bien conçue, elle illustre très bien les principes OO de dissimulation de l'information, de cohésion élevée et de faible couplage.
