Inversion of Control

E811522

Inversion of Control is a software design principle where the flow of control is delegated from custom code to a framework or container, enabling more modular, testable, and loosely coupled systems.

Try in SPARQL Jump to: Statements Referenced by

Statements (49)

Predicate Object
instanceOf architectural principle
software design principle
alsoKnownAs IoC NERFINISHED
category design principles
software architecture
software engineering
changes flow of control in a program
commonIn .NET frameworks NERFINISHED
Java frameworks
JavaScript frameworks
contrastsWith traditional procedural control flow
decouples application logic from infrastructure concerns
object creation from object usage
delegatesControlTo container
framework
enables easier unit testing
loose coupling
mocking of dependencies
plug-in architectures
separation of configuration from use
exampleFramework .NET Core dependency injection container
Angular NERFINISHED
Inversion of Control containers (IoC containers)
Spring Framework NERFINISHED
followsPrinciple Don’t call us, we’ll call you
hasGoal improve flexibility of software systems
improve maintainability
improve modularity
improve testability
reduce coupling between components
helpsWith reusing components across applications
substituting implementations at runtime
testing components in isolation
implementedBy dependency injection containers
service locator containers
promotes configuration-driven behavior
interface-based design
late binding of dependencies
relatedConcept Dependency Injection NERFINISHED
Hollywood Principle NERFINISHED
Service Locator pattern NERFINISHED
supports configuration via annotations
configuration via code
configuration via metadata
usedIn component-based systems
enterprise application frameworks
object-oriented programming
plugin systems
web application frameworks

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

Dependency Inversion Principle relatedTo Inversion of Control