Vidéo: La programmation orientée objet avec Swift (Teaser) 2025
La conception orientée objet dans iOS est une manière différente de concevoir des programmes, où le comportement est associé aux objets. Pour illustrer, envisager d'examiner les actions impliquées dans la fabrication du thé et de la soupe. Cependant, n'intervenez pas immédiatement, agissez comme un détective entrant sur une scène de crime. Reculez, examinez le domaine (la cuisine) et essayez de comprendre ce qu'il y a dedans. En d'autres termes, pensez aux objets d'abord .
-
Vous voyez une bouilloire. Vous considérez la bouilloire pendant un certain temps, puis dites: «Je peux ajouter de l'eau dessus; Je peux en verser de l'eau. "
-
Vous regardez une théière. En regardant en arrière, vous pensez: «Je peux aussi ajouter de l'eau et en verser de l'eau, tout comme je peux le faire avec une bouilloire. "
La bouilloire et la théière semblent toutes deux capables d'absorber et de verser de l'eau. Ils ont tous deux l'état (l'eau étant retenue). Par conséquent, vous généraliser que chacun de ces objets est un navire. Vous pensez également aux caractéristiques de ces objets, c'est-à-dire à leurs attributs, tels que leur volume, leur couleur et leur matériau.
Vous pensez aux autres articles de la cuisine, à savoir le poêle, le robinet, les tasses et les bols, les différentes sortes de cuillères et les aliments: soupe, thé et bouillon, même l'horloge de la cuisine. Vous pensez aussi à leurs capacités. Vous essayez de généraliser les types d'objets dans des concepts de niveau supérieur, tels que le vaisseau.
Plutôt que de penser à une recette uniquement comme une séquence d'actions, vous réalisez qu'une recette est aussi un objet. Après tout, vous pouvez créer des recettes, déchirer des recettes et partager des recettes. Une recette est en effet quelque chose de tangible; par conséquent, c'est un objet, un objet avec des capacités. Lorsque vous suivez une recette, vous pouvez imaginer que vous l'exécutez.
Donc, vous faites lancer une capacité d'une recette. Vous définissez également la configuration des responsabilités et de nettoyage d'un objet de recette. Est-ce qu'une recette a des attributs? Qu'en est-il de son auteur (a string )? Ou combien de personnes sert-il (un nombre entier )? Enfin, les recettes ont clairement une hiérarchie de généralisation, avec Making Tea et Making Soup étant des spécialisations d'une recette générique .
Le tableau ci-dessous répertorie les différents types d'objets, leurs capacités, leurs attributs et leurs généralisations.
Type d'objet | Capacités | Attributs | Généralisations |
---|---|---|---|
Navire | Ajouter un liquide; Verser le liquide | Volume, couleur, matériau | |
Théière | Les capacités d'un navire (c'est-à-dire ajouter et verser) | Les attributs d'un navire | Vessel |
Soupière | Toutes les capacités d'un Navire | Les attributs d'un Navire | Navire |
Bouilloire | Toutes les capacités d'un Navire; Bouillir | Les attributs d'un navire | Bateau |
Coupe | Toutes les capacités d'un navire; Boire de | Les attributs d'un navire | Navire; Vous pouvez boire à partir de |
Bowl | Toutes les capacités d'un navire; Manger avec une cuillère | Les attributs d'un navire | Navire; Vous pouvez consommer les liquides qu'il contient, en utilisant une cuillère |
Cuisinière | Mettre un bateau en marche; Allumer; Éteindre; Définir le niveau | Couleur | |
Robinet | Ouvrir; Fermer | Couleur | |
Thé | Raide | Type | Denrées alimentaires |
Bouillon | Raide | Saveur | Denrées alimentaires |
Horloge | Attendre | ||
Recette | Configurer; Courir; Nettoyer | Niveau de difficulté; Créateur; Nombre de personnes servies | |
Faire du thé | Responsabilités d'une recette | Attributs d'une recette; Nombre de tasses | Recette |
Faire une soupe | Responsabilités d'une recette | Attributs d'une recette; Nombre de bols | Recette |
Une entrée comme Toutes les capacités d'un Vaisseau pour l'objet Coupe signifie qu'une Coupe est censée avoir automatiquement les capacités Ajouter du liquide et Verser parce que c'est un Vaisseau.En outre, une tasse a la capacité de boire. En d'autres termes, vous pouvez faire plus avec une tasse que vous pouvez avec un vieux navire ordinaire.
Pour le mettre dans la terminologie OO, un vaisseau est une généralisation d'une Coupe, alors qu'une Coupe est une spécialisation d'un Vaisseau.
La recette de MakeTea orientée objet
@interface TeaRecipe: Recette // Faire du thé est une sorte de recette @implementation TeaRecipe + Setup; {…} // Configure la recette + Run: (int) NumberOfCups; {// ceci est une méthode d'instance NSArray * TeaCups; // Déclare un tableau de tasses [Faucet Open] [Kettle AddLiquid: (NumberOfCups * CUPVOLUME)]; [Poêle PutVesselOn: Bouilloire]; [Cuisinière TurnOn]; Pour (i = 1; i <= numberOfCups; i ++) {[TeaPot Ajouter: Quantité de thé: @ "1 cuillère"];} While (! [Kettle IsBoiling]); // continuer à faire des boucles jusqu'à ce que l'eau bout [Kettle PourWaterFrom: Théière]; [Clock Wait: @ "5 minutes"]; Pour (i = 1; i <= numberOfCups; i ++) [Kettle Pour: [TeaCups objectAtIndex: i]]; NSLog ("Enjoy Tea");} // Fin de MakeTea + Cleanup; {…} // Nettoie après la recette -d
Vous faites deux tasses de thé en utilisant ce programme:
MakeTea teaRecipeInstance = [[TeaRecipe alloc]; [Configuration de teaRecipeInstance]; [teaRecipeInstance Run: 2]; [nettoyage de teaRecipeInstance];
