Y a-t-il une odeur associée au fait de dire qu'une bibliothèque File.IO est faiblement couplée à la bibliothèque de journalisation? Ou devraient-ils être séparés et seulement combinés dans les services d'application?Une bibliothèque d'infrastructure doit-elle être couplée de manière lâche à une autre couche d'infrastructure?
Répondre
Le couplage lâche est bénéfique dans toutes les circonstances, mais vous devez également être conscient de la complexité supplémentaire qu'il peut introduire. Si vous appliquez le principe Inversion des dépendances (lisez le livre de Robert C. Martin sur Agile Principles pour une excellente discussion), vous pouvez envisager la bibliothèque File.IO pour définir une abstraction (par exemple une interface) dont elle a besoin pour la journalisation. Vous pouvez ensuite fournir une implémentation de cette abstraction en utilisant votre bibliothèque de journalisation préférée. Pour être clair, ce n'est pas la même chose que d'utiliser l'abstraction offerte par la bibliothèque de journalisation dans la bibliothèque File.IO. Ensuite, vous seriez toujours les verrouiller ensemble.
Le couplage lâche est un terme dénué de signification sans grande cohésion. Dans votre domaine, vous vous connectez aux termes spécifiques au domaine. Jetez un oeil sur le blog de Isaiah Perumalla, en particulier test-driven-design-using-mocks
- 1. images flottantes dans une couche, à l'intérieur une autre couche
- 2. Couplage lâche des composants
- 3. CSS obtenir une couche d'aller sur une autre couche
- 4. Rendre une bibliothèque référence une autre bibliothèque
- 5. Deux colonnes flottantes - une fixe, une lâche
- 6. Comment ajouter ToPoint et FromPoint d'une ligne sur une couche à une autre couche/classe d'entités
- 7. Bibliothèque pour effectuer une modification de paquet de couche liaison
- 8. Pin Couche secondaire sur une autre page
- 9. Création d'objets à partir d'une autre couche
- 10. développement à couplage lâche
- 11. Comment ajouter une bibliothèque jar dans une autre bibliothèque jar
- 12. Comment puis-je voir si une chaîne en contient un autre de manière lâche (casse, espace supplémentaire et ponctuation ignorés)?
- 13. échanger une bibliothèque pour une autre
- 14. C# ajouter une couche à une image
- 15. Manière élégante/efficace de créer une classe spécifique à une autre classe d'une autre classe
- 16. Utilisation de ressources Apache couplée à MySQL
- 17. Automatiser l'analyse couplée
- 18. Charger une bibliothèque partagée qui utilise une autre bibliothèque partagée
- 19. Comment lier statiquement une bibliothèque dans une autre bibliothèque statique?
- 20. Accéder à une autre bibliothèque à partir de tinyMCE
- 21. Ajouter une ombre à une couche
- 22. comment animer une couche div au-dessus d'une autre couche div
- 23. android définir des limites pour une couche de couche drawable
- 24. Comment concevoir une interface utilisateur dans laquelle QT peut être facilement remplacé par une autre bibliothèque
- 25. C# 4.0 comment ajouter une couche à une image
- 26. Liaison de la bibliothèque statique dans une autre bibliothèque statique
- 27. Animation sur une couche qui ne veut pas être supprimée
- 28. Pourquoi manque-t-il une animation implicite lorsque j'ajoute une sous-couche à une couche?
- 29. Comment partager une bibliothèque de classes avec une application à la manière d'un service?
- 30. Définitions courantes dans la conception à couplage lâche