22  Coder des méthodes à partir des diagrammes de séquence

Pour chacun des diagrammes suivants, écrivez les classes TypeScript avec les méthodes indiquées dans le diagramme.
(Cet exercice complémente le livre de Larman, 2005 à la section F18.6/A20.4.).

Astuce

Vous pouvez utiliser VS Code pour vous aider avec le TypeScript, mais cet outil ne sera pas forcément permis lors d’un examen.

Voici un modèle à suivre. Pour le diagramme suivant :

:A:Bexecute(3)result = setItem("Fred")

Figure 22.1: Exemple de diagramme de séquence.

On code les classes suivantes en TypeScript :

class A {
    b: B;  // A envoie un message à B, visibilité d'attribut
    execute(arg0:number):any {
        const result = this.b.setItem("Fred");
    }
}

class B {
    setItem(arg0:string):any {
        //...
    }
}
  1. Écrivez le code pour la figure suivante.

    :Bernard:Aliceinitallô(12)create:Autre"oui"15

  1. Écrivez le code pour la figure suivante décrivant la création de la collection de Vente (tirée de Larman, 2005, figure. 17.6).

    :Registreselon Créateur etContrôleurcréerNouvelleVenteRegistre crée uneVente selon Créateurcreate:Venteselon Créateur, Vente crée unecollection vide (par exemple uneListe) destinée à mémoriser lesinstances de LigneArticlesl'activation de Vente est implicitement dansle constructeur de l'instance de VentecreatelignesArticles :List<LigneArticles>

  1. Écrivez le code pour la figure suivante décrivant l’utilisation d’un Cornet dans le jeu de Monopoly (tirée de Larman, 2005, fig. F22.9)

    j : Joueur: Cornet: Plateaupos : CaseSelon Fabrication pureprendreTourlancervalTot = getTotalpos = getCase( pos, valTot )atterrirSur( j )

  1. Écrivez le code pour les figures suivantes décrivant les appels polymorphes de la méthode atterrirSur dans le jeu Monopoly (tirées de Larman, 2005, fig. F22.6 et F22.7)

    : CaseImpôtsj : JoueuratterrirSur(j)selon Polymorphismec = getCashselon ExpertdiminuerCash(min(200, 10 % de c))selon Expert

    : CaseAllezEnPrisonj : JoueuratterrirSur(j)selon PolymorphismesetPosition(prison)selon Expert