Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Design Patterns en Java
  3. Java avancé et conception par objets
Extrait - Design Patterns en Java Descriptions et solutions illustrées en UML 2 et Java (5e édition) - Les 23 modèles de conception
Extraits du livre
Design Patterns en Java Descriptions et solutions illustrées en UML 2 et Java (5e édition) - Les 23 modèles de conception Revenir à la page d'achat du livre

Java avancé et conception par objets

Les concepts avancés de la programmation par objets

1. Le typage des variables

Le typage consiste à conférer un type à toutes les variables d’un programme. Ce type dénote l’ensemble de valeurs autorisées pour cette variable. En Java, toute variable doit être associée à un type, c’est-à-dire qu’elle doit être typée.

La connaissance du type d’une variable est nécessaire pour que le compilateur puisse déterminer l’ensemble des méthodes et des attributs accessibles de l’objet qui est référencé par la variable. Le compilateur refuse de compiler tout code tentant d’accéder à une autre méthode ou un autre attribut.

Au-delà du type, le compilateur prend également en compte les critères de visibilité que nous n’abordons pas ici.

En Java, les classes constituent des types. Ainsi, le compilateur connaît les méthodes et attributs accessibles. Une variable typée par une classe peut référencer les instances de cette classe, à savoir les instances directes de celle-ci, ainsi que les instances de ses sous-classes. Une classe abstraite qui ne possède pas d’instances directes constitue également un type. L’ensemble des instances d’une telle classe est alors constitué par l’ensemble des instances de ses sous-classes.

Une interface constitue également un type. De la même façon que pour une classe, le compilateur peut ainsi déterminer les méthodes accessibles. L’ensemble des objets qui peuvent être référencés par une variable typée par une interface est constitué par l’ensemble des instances des classes qui implantent directement ou non cette interface.

Java connaît d’autres types appelés les types de données primitives, à savoir byte, short, int, long, float, double, boolean et char. La connaissance du type d’une variable permet ici aussi de connaître l’ensemble de ses valeurs possibles. Un tel type permet aussi de connaître les opérations applicables.

La notion de type telle que nous venons de la présenter n’est utilisée que par le compilateur. Elle disparaît à l’exécution....

Les principes de la conception par objets

1. La réification

La conception par objets d’une application commence par la découverte des entités du monde réel qui interviennent dans le domaine de cette application. Par exemple, dans le cadre d’une application de gestion d’un réseau électrique, les entités du monde réel sont les usines de production, les transformateurs, les postes électriques, les lignes de transport, les consommateurs, les interconnexions avec les autres réseaux, etc. Ces entités sont susceptibles d’être représentées par des objets dans l’application et par conséquent réifiées.

Réifier, c’est représenter, lors de la conception d’une application, une chose par un objet. Une chose peut être un objet du monde réel que l’on peut désigner. Une chose peut également être une entité abstraite comme un règlement, une disposition, un événement, un processus, un écrit, un contexte, un état, etc.

La conception par objets n’impose pas de réifier toutes les entités du domaine d’une application, mais uniquement celles qui interviennent dans les fonctionnalités qu’elle doit implanter et qui sont donc nécessaires à la réalisation de ces fonctionnalités.

Prenons le cas de la tenue d’une comptabilité. L’ensemble des entités du domaine contient notamment les écritures, le plan des comptes généraux et des comptes de tiers (clients, fournisseurs, etc.), les tables de correspondance entre les comptes et les postes (rubriques) du bilan et du compte de résultat.

Une application dont la fonctionnalité est l’exportation des écritures comptables nécessite la réification des écritures et du plan des comptes généraux et des comptes de tiers (le plan des comptes servant à transmettre les libellés de ces comptes).

Une application d’édition du bilan et du compte de résultat nécessite la réification des écritures et des tables de correspondance entre les comptes et les postes du bilan et du compte de résultat.

2. La conception modulaire

La conception modulaire dans les langages...