Loi de Déméter

Loi de Déméter

La loi de Déméter (son sigle anglais: LoD), ou Principe de connaissance minimale est une règle de conception pour développer un logiciel, particulièrement du logiciel orienté objet. Cette règle a été inventée à la Northeastern University à Boston durant l'automne 1987, et peut être résumée en "Ne parlez qu'à vos amis immédiats". La notion fondamentale est qu'un objet devrait faire aussi peu d'hypothèses que possible à propos de la structure de quoi que ce soit d'autre, y compris ses propres sous-composants.

Cette loi tient son nom du Projet Demeter, un effort de programmation adaptative et de programmation orientée objet. Ce projet a été nommé en l'honneur de Déméter, la déesse généreuse de l'agriculture, pour faire référence à une approche ascendante de la programmation que reflète aussi cette loi.

Appliquée à la programmation orientée objet, la loi de Déméter peut être appelée plus précisément la loi de Déméter pour les fonctions et les méthodes (sigle anglais: LoD-F). Dans ce cas, un objet A peut requérir un service (appeler une méthode) d'un objet B, mais A ne peut utiliser B pour accéder un troisième objet et requérir ses services. Faire cela signifierait que A a une connaissance plus grande que nécessaire de la structure interne de B. Au lieu de cela, B pourrait être modifié si nécessaire pour que A puisse faire la requête directement à B, et B propagera la requête au composant ou sous-composant approprié. Si la loi est appliquée, seul B connait sa propre structure interne.

Plus formellement, la Loi de Déméter pour les fonctions requiert que toute méthode M d'un objet O peut simplement invoquer les méthodes des types suivants d'objets :

  1. lui-même
  2. ses paramètres
  3. les objets qu'il crée/instancie
  4. ses objets composants

En particulier, un objet doit éviter d'invoquer des méthodes d'un membre objet retourné par une autre méthode.

L'avantage de suivre la règle de Déméter est que le logiciel résultat est plus maintenable et plus adaptable. Puisque les objets sont moins dépendants de la structure interne des autres objets, ceux-ci peuvent être changés sans changer le code de leurs appelants. Un désavantage de la règle de Déméter est qu'elle requiert l'écriture d'un grand nombre de petites méthodes "wrapper" pour propager les appels de méthodes à leurs composants. Cela peut augmenter le temps de développement initial, accroître l'espace mémoire utilisé, et notablement diminuer les performances. Des outils automatiques peuvent partiellement contrecarrer ces problèmes. Basili et al. ont publié des résultats expérimentaux en 1996 suggérant que la loi de Déméter réduit la probabilité d'erreurs logicielles.

Littérature

  • V. Basili, L. Briand, W.L. Melo: A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering. October 1996. pp. 751-761. Vol. 22, Number 10.
  • Karl J. Lieberherr, I. Holland: Assuring good style for object-oriented programs. IEEE Software, September 1989, pp 38-48.
  • Karl J. Lieberherr: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, International Thomson Publishing, Boston, 1995.

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Loi de Déméter de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Loi De Déméter — La loi de Déméter (son sigle anglais: LoD), ou Principe de connaissance minimale est une règle de conception pour développer un logiciel, particulièrement du logiciel orienté objet. Cette règle a été inventée à la Northeastern University à Boston …   Wikipédia en Français

  • Loi de Demeter — Loi de Déméter La loi de Déméter (son sigle anglais: LoD), ou Principe de connaissance minimale est une règle de conception pour développer un logiciel, particulièrement du logiciel orienté objet. Cette règle a été inventée à la Northeastern… …   Wikipédia en Français

  • Loi de déméter — La loi de Déméter (son sigle anglais: LoD), ou Principe de connaissance minimale est une règle de conception pour développer un logiciel, particulièrement du logiciel orienté objet. Cette règle a été inventée à la Northeastern University à Boston …   Wikipédia en Français

  • Musée national du Bardo (Tunisie) — Pour les articles homonymes, voir Musée national du Bardo. Musée national du Bardo المتحف الوطني بباردو …   Wikipédia en Français

  • Histoire de l'homme occidental — L’histoire de l’homme occidental est l’étude des faits qui concernent l’identité culturelle de l’homme occidental à travers son histoire. Elle évacue toute composante événementielle dans le but d’illustrer comment ce dernier a évolué dans ses… …   Wikipédia en Français

  • GRÈCE ANTIQUE - La religion grecque — Les caractères dominants de la religion grecque apparaissent d’emblée: il s’agit d’un polythéisme qui s’est enrichi par l’adjonction progressive de nouvelles divinités; les dieux sont conçus sous forme anthropomorphisée, encore que les traces de… …   Encyclopédie Universelle

  • Sélinonte — 37° 35′ 13″ N 12° 50′ 05″ E / 37.586881, 12.834846 Sélinonte ou …   Wikipédia en Français

  • Histoire de Paros — Paros (en grec ancien et en grec moderne Πάρος) est une île grecque dans l archipel des Cyclades. Les plus anciennes traces d habitat dans les Cyclades, vieilles de près de 7 000 ans, ont été découvertes sur l îlot de Saliagos, entre Paros… …   Wikipédia en Français

  • thesmophories — [ tɛsmɔfɔri ] n. f. pl. • 1618; gr. thesmophoria, de thesmophoros « législateur », appell. de Déméter ♦ Antiq. gr. Fêtes en l honneur de Déméter, célébrées par les femmes. ● thesmophories nom féminin pluriel (grec thesmophoria) Fêtes grecques… …   Encyclopédie Universelle

  • CARTHAGE — Fondée par les Phéniciens au IXe siècle avant Jésus Christ selon les uns, au VIIIe selon les autres, Carthage tira longtemps sa prospérité de ses relations commerciales avec les divers peuples de l’Afrique septentrionale et de la Méditerranée… …   Encyclopédie Universelle

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”