Menu
Coddy logo textTech

Récapitulatif - Stockage générique

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 69 sur 110.

challenge icon

Défi

Facile

Construisons un système de stockage générique qui combine tout ce que vous avez appris sur les collections et les génériques ! Vous allez créer une classe Storage<T> capable de stocker des éléments de n'importe quel type, de les récupérer et d'être parcourue à l'aide d'une boucle for-in.

Vous organiserez votre code dans deux fichiers :

  • storage.dart : Créez votre système de stockage générique avec deux classes :
    • Une classe StorageIterator<T> qui implémente Iterator<T> pour permettre l'itération sur les éléments stockés
    • Une classe Storage<T> qui étend Iterable<T> avec les capacités suivantes :
      • Une liste privée pour contenir les éléments en interne
      • Une méthode add(T item) pour stocker un nouvel élément
      • Une méthode getAt(int index) qui retourne l'élément à l'index donné
      • Un getter count qui retourne le nombre d'éléments stockés
      • Un getter iterator qui retourne un StorageIterator pour les éléments stockés
  • main.dart : Importez votre fichier de stockage et démontrez le stockage générique avec différents types :
    • Créez un Storage<String> et ajoutez trois noms de villes : 'Paris', 'Tokyo', 'Sydney'
    • Affichez le nombre d'éléments (count)
    • Affichez l'élément à l'index 1
    • Utilisez une boucle for-in pour afficher chaque ville sur sa propre ligne
    • Affichez une ligne vide
    • Créez un Storage<int> et ajoutez quatre nombres : 100, 200, 300, 400
    • Utilisez la méthode where pour filtrer les valeurs supérieures à 150, puis affichez la liste résultante

Votre système de stockage doit fonctionner parfaitement avec n'importe quel type tout en maintenant une sécurité de type complète. Parce qu'il étend Iterable, il accède automatiquement à des méthodes puissantes comme where, map et fold !

Sortie attendue :

Count: 3
Item at 1: Tokyo
Paris
Tokyo
Sydney

[200, 300, 400]

Essayez vous-même

import 'storage.dart';

void main() {
  // TODO: Créer un Storage<String> pour les villes
  // Ajouter trois villes : 'Paris', 'Tokyo', 'Sydney'

  // TODO: Afficher le nombre d'éléments (format : "Count: X")

  // TODO: Afficher l'élément à l'index 1 (format : "Item at 1: X")

  // TODO: Utiliser une boucle for-in pour afficher chaque ville sur sa propre ligne

  // TODO: Afficher une ligne vide
  print('');

  // TODO: Créer un Storage<int> pour les nombres
  // Ajouter quatre nombres : 100, 200, 300, 400

  // TODO: Utiliser la méthode where pour filtrer les valeurs supérieures à 150
  // Ensuite, afficher la liste résultante en utilisant toList()
}

Toutes les leçons de Programmation Orientée Objet