Table des matières:
Vidéo: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2025
La conception orientée objet a des concepts structurels et comportementaux très utiles dans les applications iOS. La conception orientée objet est une manière différente de concevoir des programmes, où le comportement est associé à des objets. Ce qui suit définit et explique la terminologie OO de base tout en apportant des concepts supplémentaires qui complètent les blocs de construction de OO.
Objet
Un objet est un objet individuel, identifiable, réel ou abstrait, qui contient des données sur lui-même et des descriptions de ses manipulations des données. En d'autres termes, un objet peut être
-
Quelque chose de réel et tangible, comme les éléments d'une cuisine
-
Un concept pur, tel qu'un concept mathématique, comme un objet
d'identification est la première étape de l'analyse d'un domaine.
Chaque objet est considéré comme une instance d'une classe.
La classe
Une classe est une description de l'organisation et des actions partagées par un ou plusieurs objets similaires.
Un type est un concept similaire à celui de la classe, et ils sont souvent utilisés de façon interchangeable. Dans les langages de programmation, une classe a aussi une signification technique. C'est un modèle d'un objet, à travers lequel de nouveaux objets peuvent être créés. Cependant, le concept d'un type distinct de celui d'une classe est capturé dans de nombreux langages de programmation (mais pas Objective-C) par une construction de programmation appelée interface .
L'orientation objet a aussi le concept d'une métaclasse , dont les instances sont classes . Il y a une métaclasse en Objective-C appelée Class.
Abstraction
Lorsque vous identifiez les classes d'objets et leurs capacités, ne tenez pas compte des classes ou des capacités qui n'étaient pas pertinentes pour le domaine de l'activité. Par exemple, il est peu probable que vous ayez introduit une classe pour représenter la capacité d'une tasse de thé à être jetée si vous étiez en train de concevoir un programme de fabrication de thé.
Ce type de modélisation dans lequel vous ignorez ce qui n'est pas pertinent pour se concentrer sur ce qui est pertinent pour un domaine particulier est connu sous le nom d'abstraction . L'abstraction consiste à identifier les classes (et les types) nécessaires pour se limiter aux aspects pertinents du problème.
Généralisation
Le concept de généralisation est illustré dans la relation entre les classes Vessel et Teacup. La généralisation dans un langage de programmation est démontrée par un mécanisme appelé héritage, qui permet d'inclure ou d'utiliser les données et le comportement d'une classe comme base d'une autre classe.
Plusieurs langages de programmation ont une classe racine dont toutes les classes sont héritées. Dans le cadre Objective-C, la classe s'appelle NSObject. NSObject est équivalent à la classe Object en Java.
Une sous-classe est une classe qui hérite de toutes les fonctionnalités d'une autre classe (connue sous le nom de superclasse ). En outre, la sous-classe peut remplacer des fonctionnalités spécifiques en fournissant sa propre implémentation de certaines méthodes. La méthode de la superclasse peut toujours être appelée à partir de la méthode prioritaire, si cela est logique. Vous pouvez également étendre les fonctionnalités de la superclasse en fournissant des méthodes supplémentaires, en utilisant des variables de membre supplémentaires, etc. De même, un type (une
interface ) peut également être étendu en utilisant un sous-type. Ici, aucune fonctionnalité n'est surchargée; c'est juste que le sous-type a plus de méthodes qu'un objet doit implémenter. Un objet stocke généralement des données, également connues sous le nom d'état
. Cet état est stocké dans des supports de données appelés attributs. Les objets (tels que définis par les classes) ont également des capacités. Une méthode
est un moyen d'accéder à cette capacité - en d'autres termes, d'exécuter un ensemble d'instructions qui définissent ou manipulent les attributs d'un objet. D'autres objets provoquent l'exécution de ces méthodes. Ils le font via
le passage de message, qui est le processus par lequel un objet envoie des données à un autre objet ou demande à l'autre objet d'invoquer une méthode. Le passage de message se produit lorsqu'un autre objet appelle la méthode d'un objet. L'exécution d'un programme commence généralement par l'appel d'une fonction ou d'une méthode nommée main dans une classe spécifique. Le processus d'abstraction entraîne la création de classes et de types. Les classes et les types ont une caractéristique de plus: Ils ne contraignent leur utilisation que par leurs méthodes et attributs accessibles au public. Ceci est connu comme
encapsulation , une technique de conception de classes et d'objets qui restreint l'accès aux données et au comportement en définissant un ensemble limité de messages qu'un objet de cette classe peut recevoir. L'encapsulation empêche l'accès aux composants internes d'une classe et empêche les détails sur la façon dont la classe est implémentée d'être connus. L'encapsulation impose le masquage des informations, un autre concept clé dans l'orientation des objets. Les classes abstraites
servent uniquement de spécifications à réutiliser par d'autres classes. Vous ne pouvez pas créer d'objets à partir de classes abstraites. Les classes à partir desquelles vous pouvez créer des objets sont appelées classes concrètes . Bien sûr, les interfaces sont toujours abstraites. Une application consiste en une collection de classes de différents types. Les objets de ces classes interagissent entre eux pour implémenter les fonctionnalités de l'application. Les classes avec lesquelles une classe interagit s'appellent ses
collaborateurs . Polymorphisme
est la capacité de différentes classes à répondre au même message, chaque classe implémentant la méthode de manière appropriée. La ligne suivante tirée de MakeDrinkableFood illustre ce concept: Pour (i = 1; i <= numberOfEatingVessels; i ++) HeatingVessel.Pour (([EatingVessel objectAtIndex: i);
Quand le thé est fait, EatingVessel est lié à un objet Kettle Quand la soupe est faite, EatingVessel est lié à un objet Tureen.
Il est utile de séparer ces concepts Les concepts d'abstraction, encapsulation, métaclasse, classe, type, objet, héritage et interface sont tous des concepts structurels. Les concepts de méthode, de transmission de message et de polymorphisme sont des concepts comportementaux.
