Outils pour utilisateurs

Outils du site


doc:poo

Définitions

Interface

Une interface est un contrat qui définit un ensemble de méthodes. Les classes qui implémenteront cette interface devront au minimum implémenter ces méthodes.

Les interfaces peuvent servirent dans plusieurs cas :

  • Forcer un groupe de classes à implémenter au minimum certaines méthodes. L'exemple classique est la classe Animal avec la méthode Aller. Un cheval, il va utiliser 4 pattes, une poule deux, une araignée huit et un poisson va battre de la queue,
  • Permettre de développer une fonctionnalité utilisant l'interface en attendant qu'une autre personne développe la classe qui respectera l'interface,
  • Faciliter l'écriture des tests. Si une classe manipule un matériel physique, il peut être difficile de tester une autre classe exploitant le matériel. Il pourra être alors intéressant de remplacer la classe matériel par une fausse classe dite mock.
  • “Les composants sont visibles des autres composants exclusivement à travers des interfaces”.

Interface

Abstraction

Représenter la réalité comme étant un objet.

En pratique cela consiste à définir des méthodes dans une classe. Les méthodes peuvent être déjà implémentées ou alors également laissées abstraites pour forcer le développeur à les implémenter ultérieurement.

Encapsulation

L'encapsulation regroupe toutes les données et les méthodes implémentées pour les exploiter. Les données peuvent être regroupées dans des POJO/POCO/… et invisibles, si besoin, de l'extérieur.

Encapsulation

Introduction à la Programmation Orientée Objet Archive du 10/09/2011 le 26/04/2020

  • Partage de données

The tempting and straight forward approach for realizing undo is to store the state information directly in the command objects. In many cases this will expose parts of the internal structure of the model and violate the principle of encapsulation.A framework for command processing in Java/Swing programs based on the MVC pattern Archive

Héritage

L'héritage permet de spécialiser une classe. Il reprend toutes les caractéristiques d'une classe en redéfinissant ou ajoutant des méthodes et en ajoutant des attributs.

Héritage

classe – De geek à directeur technique Archive du 10/01/2012 le 26/04/2020

Polymorphisme / redéfinition

Le polymorphisme est donc la capacité du système à choisir la méthode qui correspond au type réel de l'objet en cours.

La méthode appelée variera si sa définition est virtuelle ou non.

Surcharge

C'est écrire deux fonctions ayant le même nom mais avec une signature différente. Une signature est définie par le type et le nombre d'arguments. Attention : le type de retour d'une méthode ne fait pas parti de la signature.

Composition

Liaison de deux objets ayant le même cycle de vie.

Exemple : une classe homme est composée avec une classe cœur.

Agrégation

Objets pouvant s'intégrer à un autre objet n'ayant pas le même cycle de vie. Il y a une notion de parent/enfant, contenant/contenu.

Exemple : une classe bibliothèque est agrégé avec une classe livre.

Agrégation

Association

Deux objets travaillant ensemble mais n'ayant pas le même cycle de vie ni même de notion de possession.

Exemple : étudiant et professeur. Même s'il existe dans la réalité une notion de hiérarchie, elle n'a rien à voir dans la notion d'association. Un étudiant peut être dissocié d'un professeur et inversement sans que cela ne pose le moindre problème. Difference between Association, Composition and Aggregation in Java, UML and Object Oriented Programming Archive du 05/02/2017 le 26/04/2020

doc/poo.txt · Dernière modification : 2020/05/11 00:24 de root