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)
Répondre
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
Codene 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.
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? –
Ce lien vers la granularité ne fonctionne plus. Est-il ici https://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdf? –
- 1. SOLID Liskov Remplacement Principe
- 2. Principe de responsabilité unique et Sharepoint WebParts
- 3. Modèle de visiteur + principe ouvert/fermé
- 4. Comment construire le ViewModel dans MVVM pour ne pas violer le principe de responsabilité unique?
- 5. Principe de responsabilité unique: granularité du motif de changement
- 6. Type de contraintes de contraintes pour le principe de liskov en C# .NET
- 7. Comment utiliser le principe de la responsabilité unique dans les grands services wcf?
- 8. Comment puis-je utiliser le principe DRY dans ASP.NET MVC pour refactoriser ce code?
- 9. Fonction d'agrégat non disponible en tant qu'article dans Merge Rep Publication
- 10. Quel est votre meilleur exemple de violation du principe de la responsabilité unique?
- 11. Renommer la colonne de sortie avec le paquet plyr dans R
- 12. Générer le type de diffusion dynamiquement en C#
- 13. Existe-t-il d'autres avantages pour le code à couplage lâche en plus de TDD?
- 14. Initialiser l'objet COM/Traduire le code VB en C++
- 15. Toujours le faire avec la même méthode à chaque fois, est-ce utilisable dans les projets logiciels?
- 16. Authentification du serveur Maven en tant que propriétés de profil
- 17. Comment puis-je transmettre un nom d'utilisateur et un mot de passe pour appeler le service Web reposant?
- 18. Modèle de conception de visiteur dans OCaml
- 19. Comment obtenir l'adaptateur in_memory de la bibliothèque ruby DataMapper pour enregistrer correctement l'identifiant du modèle?
- 20. Contrat de rappel de longue durée via le canal duplex WCF - modèles de conception alternatifs?
- 21. Plus de traçage de bullseye en R
- 22. Comment utiliser RadioButtons et le modèle MVVM
- 23. R: Occurrence -> séquence binaire?
- 24. Bonne et petite base de données open source pour l'enseignement
- 25. Poste d'implémentation de Restlet avec réception et réponse JSON
- 26. Qu'est-ce qui devrait aller dans un espace de noms de premier niveau?
- 27. Comment corriger le message de 'projets obsolètes' de studio visuel à chaque fois que je l'exécute
- 28. Traite le fichier avant de le télécharger
- 29. Trouver le temps de chargement de SWF dans le navigateur
- 30. Le script Powershell permet de modifier le compte de service
Devinez vous voulez le badge d'auto-apprenant :-) – Mendelt
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. –
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.) –