ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 2
        • Calendrier groupes 1, 3
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
        • Module 1.3: tableau d'objets
        • Examen 1
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Équipes
          • Horaire groupe 1
          • Horaire groupe 2
          • Horaire groupe 3
          • Groupe 1
          • Groupe 2
          • Groupe 3
        • Projets vedettes 2022
        • Projets vedettes 2023
        • Projets vedettes 2024
        • Survol
        • Structure
        • Calendrier
        • Calendrier des séances
        • Évaluations
        • Exemples de jeu
        • Exemples de pages
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 7: améliorer l'affichage
        • Module 8: jeu en 2d
        • Module 9: client/serveur
        • Module 10: plusieurs instances du même modèle
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
      • Ajout Format JSON
        • Calendrier
        • Évaluations
        • Structure du cours
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
        • 03: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 04: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Index
      • Point de vue sur l'IA
    Théorie 2.1: notion de modèle
    • Théorie 2.1: notion de modèle
      • Notion de modèle
      • Un modèle a des comportements (méthodes)
      • Une application a souvent plusieurs modèles
      • Modèle en JSON

    Théorie 2.1: notion de modèle #

    Notion de modèle #

    1. Un modèle est une classe qui représente des données importantes pour un programme

    2. Prenons par exemple un petit tableau de cartes issu de l’atelier 1.1:

    3. Le modèle est la classe MonTriLibre

    4. Il faut aussi les objets Carte pour bien représenter les données

    5. Les classes complémentaires comme Carte sont parfois appelées des valeurs (ou des sous-modèles)

    Un modèle a des comportements (méthodes) #

    1. Comme MonTriLibre est une classe, le modèle contient aussi des méthodes

    2. Par exemple:

      • boolean isSorted pour déterminer si les cartes sont triées
      • int testCaseSize qui retourne la taille de l’exemple (le nombre de cartes)
    3. La valeur Carte contient aussi des méthodes, par exemple:

      • int compareTo pour indiquer si la carte est plus petite qu’une autre carte
      • boolean isNullCard pour indier s’il s’agit vraiment d’une carte ou d’une case vide
    4. On va voir à la session suivante qu’une application graphique est souvent divisée en trois parties:

      • le modèle: contient les données et les méthodes pour manipuler les données
      • la vue: contient le code pour afficher les données
      • le contrôleur: contient le code pour créer les vues et les modèles et autres tâches
    5. (C’est le populaire patron MVC: modèle-vue-contrôleur)

    Une application a souvent plusieurs modèles #

    1. Par exemple, l’outil de validation a un modèle a trois modèles

      • un modèle pour les cartes et un pour les cas de tests
      • un modèle pour des paramètres

    Modèle en JSON #

    1. JSON n’a pas de notion de classe

    2. Dans ce cours, on va utiliser la clé spéciale _C pour identifier la classe

    3. On a donc la représentation JSON suivante pour un 4♧:

      {
          "_C": "Carte",
          "numero": 4,
          "sorte": "TREFLE"
      }
      
    4. Et le JSON suivant pour une liste de trois cartes

      [
          {
              "_C": "Carte",
              "numero": 5,
              "sorte": "CARREAU"
          },
          {
              "_C": "Carte",
              "numero": 4,
              "sorte": "TREFLE"
          },
          {
              "_C": "Carte",
              "numero": 6,
              "sorte": "CARREAU"
          }
      ]
      
    5. Et finalement le JSON suivant pour le modèle MonTriLibre

    {
        "_C": "MonTriLibre",
        "cartes": 
            [
                {
                  "_C": "Carte",
                  "numero": 5,
                  "sorte": "CARREAU"
                },
                {
                  "_C": "Carte",
                  "numero": 4,
                  "sorte": "TREFLE"
                },
                {
                  "_C": "Carte",
                  "numero": 6,
                  "sorte": "CARREAU"
                }
            ],
        "siTrie": false
    }
    
    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Théorie 2.1: notion de modèle
      • Notion de modèle
      • Un modèle a des comportements (méthodes)
      • Une application a souvent plusieurs modèles
      • Modèle en JSON