Loi de Demeter
La loi de du Demeter (LoD) , ou le principe de de moindre connaissance est une directive de conception pour le logiciel se développant , en particulier les programmes orientés objectivement de . La directive a été inventée à l'université du nord-est vers l'extrémité du 1987 , et peut être succinctement récapitulée en tant que « seulement entretien à vos amis immédiats. » La notion fondamentale est qu'un objet donné devrait supposer le moins possible au sujet de la structure ou des propriétés de toute autre chose (ses sous-composants y compris).
Il est ainsi appelé pour son origine dans le projet de Demeter de , un de programmation adaptatif et l'effort de programmation de Aspect-orienté par . Ce projet a été appelé en l'honneur du Demeter , « distribution-mère » et déesse de l'agriculture , pour signifier une philosophie de bas en haut de la programmation qui est également incorporée dans la loi elle-même.
Une fois appliquée aux programmes orientés objectivement, la loi du Demeter peut plus avec précision s'appeler la « loi du Demeter pour des fonctions/méthodes » (LoD-F). Dans ce cas-ci, un objet A peut demander un service (appeler une méthode) d'un exemple B d'objet, mais objecte A ne peut pas « accéder par » l'objet B pour accéder à encore un autre objet pour demander ses services. Faire ainsi signifierait que l'objet A exige implicitement la plus grande connaissance de la structure interne de l'objet b. Au lieu de cela, la classe du b devrait être modifiée au besoin de sorte que l'objet A puisse simplement faire la demande directement de l'objet B, et a puis laissé la propagation de l'objet B la demande à tous les sous-composants appropriés. Si la loi est suivie, seulement l'objet B connaît sa structure interne.
Plus formellement, la loi du Demeter pour des fonctions exige qu'un M de méthode d'un O d'objet peut seulement appeler les méthodes de genres suivants d'objets :
En particulier, un objet devrait éviter d'appeler des méthodes d'objet de membre retourné par une autre méthode. Pour beaucoup de langages de type objet modernes qui emploient un point comme marque de champ, la loi peut être énoncée simplement comme " ; employer seulement un dot" ;. C'est-à-dire, le " de code ; " d'a.Method () ; viole la loi où " ; " d'a.Method () ; ne fait pas. Il y a désaccord quant à la suffisance de cette approche.com/articles/2007/08/05/lovely-demeter-meter-maid]
L'avantage de suivre la loi du Demeter est que le logiciel en résultant tend à être plus maintenable et adaptable. Puisque les objets dépendent moins de la structure interne d'autres objets, des récipients d'objet peuvent être changés sans retoucher leurs visiteurs.
Un inconvénient de la loi du Demeter est qu'il exige parfois écrire un grand nombre de petites méthodes de « emballage » (parfois désignées sous le nom de Transmogrifiers de Demeter) pour propager des appels de méthode aux composants. En outre, l'interface d'une classe peut devenir encombrante en tant qu'elle accueille des méthodes pour les classes contenues ayant pour résultat une classe sans interface cohésive.
Basili et autres ont édité des résultats expérimentaux dans le 1996 proposant que la loi du Demeter ait été une manière valide de réduire la probabilité des défauts de logiciel.
Littérature
V. Melo : une validation de la métrique de conception orientée objectivement comme indicateurs de qualité. Transactions d'IEEE sur la technologie de la programmation. Hollande : assurant le bon modèle pour les programmes orientés objectivement . Logiciel d'IEEE, septembre 1989, pp 38-48. Lieberherr : Logiciel orienté objectivement adaptatif de : La méthode de Demeter avec la propagation modèle . PWS Publishing Company, Thomson international éditant, Boston, 1995. Chasse et David Thomas à Andrew : le programmeur pragmatique : Du compagnon pour maîtriser . Addison-Wesley, copyright 2002, pp 140-141.
Craig Larman : appliquant UML et modèles, 3ème édition . Hall d'apprenti, copyright 2005, pp 430-432 (de ce livre, " ; Loi de Demeter" ; est également connu comme " ; Ne pas parler au strangers" ;)
Steve McConnell : Code de complet, 2ème édition . Microsoft pressent, copyright 2004, la page 150.
| Random links: | Hommage vers la Catalogne | Crème de Benjamin | Maîtrise des terrains | Nighthawk (bandes dessinées de C.C) | Excédents non distribués | Ley_del_Demeter |