Selon le journal écrit par Martin Fowler: http://martinfowler.com/bliki/InversionOfControl.html , l'inversion de contrôle est le principe selon lequel le flux de contrôle d'un programme est inversé: au lieu de cela, le programmeur qui contrôle le débit d'un programme, les sources externes (cadre, les services, les autres composants) d'en prendre le contrôle. Il aime nous brancher quelque chose en quelque chose d'autre. Il a cité l'exemple sur les EJB 2.0:
Par exemple, la Session Bean interface définit ejbRemove, ejbPassivate (stockées au stockage secondaire), et ejbActivate (restauré à partir de passif de l'état). Vous n'obtenez pas de contrôle lors de la ces méthodes sont appelées, juste ce qu' ils le font. Le conteneur appelle nous, nous ne pas l'appeler.
Cela conduit à la différence entre le cadre et la bibliothèque:
L'Inversion de Contrôle est un élément clé de ce qui fait un cadre différent à un de la bibliothèque. Une bibliothèque est essentiellement un ensemble de fonctions que vous pouvez appeler, ces jours généralement organisés en des classes. Chaque appel fait un peu de travail et retourne le contrôle au client.
Je pense que, du point de vue DI CIO, signifie la dépendance d'un objet est inversé: au lieu de cela, il contrôle ses propres dépendances, cycle de vie... quelque chose d'autre le fait pour vous. Mais, comme vous m'avez dit à propos de DI par les mains, la DI n'est pas nécessaire CIO. Nous pouvons encore avoir DI et pas du CIO.
Toutefois, dans le présent document (à partir de la pococapsule, un autre CIO Cadre pour le C/C++), il suggère qu'en raison de la COI et DI, le CIO conteneurs et DI cadres sont beaucoup plus supérieure à J2EE, depuis J2EE mixe le cadre du code dans les composants, donc de ne pas en faire Plain Old Java/C++ Objet (POJO/POCO).
L'Inversion de Contrôle des Conteneurs autres que l'Injection de Dépendance modèle: http://www.pocomatic.com/docs/whitepapers/ioc-vs-di/
Lecture supplémentaire à comprendre quel est le problème avec les vieux Composante de Base du Cadre de Développement, ce qui conduit à la deuxième document ci-dessus: Pourquoi et que faire de l'Inversion de Contrôle: http://www.pocomatic.com/docs/whitepapers/ioc/
Ma Question: Quel est exactement CIO et DI? Je suis confus. Basé sur pococapsule, CIO est quelque chose de plus important que de simplement inverser le contrôle des objets ou entre les programmeurs et les cadres.