2008-09-15 9 views
17

Quel est le principe d'équivalence de réutilisation/libération et pourquoi est-ce important?Le principe d'équivalence de réutilisation/libération (REP)

+4

Devinez vous voulez le badge d'auto-apprenant :-) – Mendelt

+1

Eh bien, ce serait bien. Mais la principale raison pour laquelle je fais cela (et poser les autres questions sur les principes de conception OO) est d'aider à semer le site avec des informations et, espérons-le, augmenter la sensibilisation à ces principes. Je suis constamment choqué par le nombre de devs que je rencontre et qui n'en ont jamais entendu parler. –

+0

D'accord, c'est juste. J'ai supprimé ma réponse pour vous punir d'être descendu de la liste. (Il aurait dû être un commentaire ici de toute façon.) –

Répondre

24

La réutilisation/Release Principe d'Equivalence (REP) dit:

L'unité de réutilisation est l'unité de libération. Une réutilisation efficace nécessite le suivi des versions d'un système de contrôle des modifications. Le paquet est l'unité efficace de réutilisation et de libération.

L'unité de réutilisation est l'unité de libération

Code

ne doit pas être réutilisé en le copiant d'une classe et de le coller dans un autre. Si l'auteur d'origine corrige des bogues dans le code ou ajoute des fonctionnalités, vous n'en retirerez pas automatiquement les avantages. Vous devrez découvrir ce qui a changé, puis modifier votre copie. Votre code et le code original vont progressivement diverger. Au lieu de cela, le code doit être réutilisé en incluant une bibliothèque libérée dans votre code. L'auteur original conserve la responsabilité de le maintenir; vous ne devriez même pas avoir besoin de voir le code source.

réutilisation efficace exige un suivi des rejets d'un système de contrôle des changements

L'auteur d'une bibliothèque a besoin d'identifier les versions avec des numéros ou noms de quelque sorte. Cela permet aux utilisateurs de la bibliothèque d'identifier différentes versions. Cela nécessite l'utilisation d'un système de suivi des versions.

Le paquet est l'unité efficace de réutilisation et de libération

Il pourrait être possible d'utiliser une classe comme unité de réutilisation et de libérer, mais il y a tant de classes dans une application typique, il serait fastidieux pour le système de suivi des rejets afin de garder une trace de tous. Une entité à plus grande échelle est requise et l'ensemble répond bien à ce besoin. Voir également l'article de Robert Martin sur le Granularity.

+0

Par paquet, je suppose que ce qui est signifié est * pas * package Java ou espace de noms C#, mais dll et jar. Est-ce correct? –

+0

Ce lien vers la granularité ne fonctionne plus. Est-il ici https://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdf? –

Questions connexes