Software Inversion of Control
Jump to navigation
Jump to search
A Software Inversion of Control is a software design principle that inverts Software Inversion of Control Flow from software inversion of control traditional procedural flow to software inversion of control framework-controlled flow.
- AKA: IoC, Inversion of Control Principle, Hollywood Principle ("Don't call us, we'll call you").
- Context:
- It can typically transfer Software Inversion of Control Execution Control from software inversion of control application code to software inversion of control framework.
- It can typically enable Software Inversion of Control Loose Coupling between software inversion of control components and software inversion of control dependencys.
- It can typically facilitate Software Inversion of Control Plugin Architectures through software inversion of control extension points.
- It can typically support Software Inversion of Control Testability via software inversion of control dependency substitution.
- It can typically promote Software Inversion of Control Modularity through software inversion of control component isolation.
- ...
- It can often implement Software Inversion of Control Event Handling in software inversion of control GUI frameworks.
- It can often enable Software Inversion of Control Lifecycle Management for software inversion of control managed objects.
- It can often provide Software Inversion of Control Configuration Flexibility through software inversion of control external configuration.
- It can often support Software Inversion of Control Aspect-Oriented Programming via software inversion of control interception points.
- ...
- It can range from being Simple Software Inversion of Control to being Complex Software Inversion of Control, depending on its software inversion of control implementation sophistication.
- It can range from being Compile-Time Software Inversion of Control to being Runtime Software Inversion of Control, depending on its software inversion of control binding time.
- ...
- It can enable Software Dependency Injection Pattern through software inversion of control dependency provision.
- It can support Software Template Method Pattern via software inversion of control algorithm structure.
- It can facilitate Software Plugin Architecture Pattern through software inversion of control extension mechanisms.
- ...
- Examples:
- Software Inversion of Control Implementation Types, such as:
- Software Inversion of Control Dependency Injection providing software inversion of control dependencys to software inversion of control consumers.
- Software Inversion of Control Service Locator enabling software inversion of control service discovery.
- Software Inversion of Control Template Method defining software inversion of control algorithm skeletons.
- Software Inversion of Control Frameworks, such as:
- Spring Framework Inversion of Control Container managing software inversion of control Java beans by Pivotal Software.
- .NET Core Inversion of Control Container handling software inversion of control services by Microsoft.
- Angular Inversion of Control Framework controlling software inversion of control component lifecycles by Google.
- Software Inversion of Control Applications, such as:
- ...
- Software Inversion of Control Implementation Types, such as:
- Counter-Examples:
- Software Procedural Control Flow, where software procedural control flow application directly controls software procedural control flow execution sequence.
- Software Hard-Coded Dependencies, which create software hard-coded dependencies tight coupling between software hard-coded dependencies components.
- Software Static Binding, which fixes software static binding relationships at software static binding compile time.
- See: Software Design Principle, Software Dependency Injection Pattern, Software Framework Design, Software Control Flow, Software Design Pattern.