Différence entre “Inversion de Contrôle”, “inversion de la Dépendance” et de “Découplage”
Je suis théorie de la lecture sur inversion de dépendance et découplage et je ne peux pas voir la différence entre les deux.
Inversion de dépendance parle de découplage des composants fonctionnels de sorte que le niveau plus élevé des composants ne dépendent pas des composants de bas niveau.
Découplage parle de la même chose et la manière de l'atteindre. Mais ensuite, nous avons Cio Conteneurs que gâcher les choses encore plus loin. Pourquoi ne sont-ils pas plutôt appelé Inversion de la Dépendance des Conteneurs ou encore mieux l'Injection de Dépendance des Conteneurs, car ils servent d'exécution de couplage de composants indépendants?
Puis nous avons Inversion de Contrôle. C'est essentiellement la même chose que Inversion de Dépendance n'est-ce pas? Pourquoi il y a trois termes qui décrivent la même chose? Ou suis-je aveugle?
- Quelle est la différence entre les trois?
- Ce n'Cio faire Cio Conteneurs?
- Gogolev: le Découplage est écrit avec le "o": en.wikipedia.org/wiki/Decoupling#Software_Development
Vous devez vous connecter pour publier un commentaire.
Découplage est un principe très général applicable dans de nombreux domaines. Inversion de dépendance est une forme spécifique de découplage où vous découpler la hausse des niveaux de votre système à partir des niveaux inférieurs en les séparant dans les bibliothèques et l'utilisation d'interfaces. Cela vous permet de remplacer parties bas niveau de votre système sans refonte complète.
Par exemple, au lieu de la hausse du niveau des parties du système de création des instances concrètes de la baisse du niveau des classes, un conteneur IoC peut être utilisé pour découpler la manière dont les objets sont créés.
Inversion de contrôle est un principe de conception utilisés par les bibliothèques framework qui permettent le cadre de retrouver un certain contrôle de l'application. I. e., un fenêtrage cadre peut appeler dans le code de l'application lors de certains événements de l'interface utilisateur de se produire. Martin Fowler utilise le terme Hollywood Principe comme dans Ne nous appelez pas, nous vous appellerons. Le découplage est une partie importante de l'inversion de contrôle.
Mais ce qui a une conteneur IoC à voir avec l'inversion de contrôle? Pour citer Martin Fowler:
(À noter que Martin Fowler parle l'injection de dépendance, pas inversion de dépendance.)
Un conteneur IoC contribue à mettre en œuvre l'injection de dépendance et peut-être un meilleur terme serait conteneur d'injection de dépendance. Toutefois, le Cio nom du conteneur de l'air de coller. L'injection de dépendance est une composante importante dans l'inversion de dépendance, mais l'utilisation de conteneurs IoC pour l'injection de dépendances peut être source de confusion comme l'inversion de contrôle est plus large et plus générique principe.
- Vous que le nom n'est pas très cohérent, mais qui ne devrait pas être une surprise que ces termes ont été indépendamment inventé et utilisé, même si elles se chevauchent.
L'Injection de dépendance réalise Découplage à l'aide de Inversion de Contrôle.
Je trouve l'explication suivante de PLONGEON dans la nature article sur martinfowler.com simple à comprendre (ici DI = Injection de Dépendance, DIP = Inversion de Dépendance Principe, Cio = Inversion de Contrôle):
Inversion de la dépendance: Dépendance sur des abstractions, non pas sur des concrétions.
Inversion de contrôle: Principales vs Abstraction, et la façon dont la Principale est la colle des systèmes.
Voici quelques bonnes postes à parler à ce sujet:
https://coderstower.com/2019/03/26/dependency-inversion-why-you-shouldnt-avoid-it/
https://coderstower.com/2019/04/02/main-and-abstraction-the-decoupled-peers/
https://coderstower.com/2019/04/09/inversion-of-control-putting-all-together/