Software Design Patterns & Principles
Dependency Injection & Inversion of Control
68 lessons in Software Design Patterns & Principles
- Common DI Pitfalls to AvoidSlides / Video
- Service Locator vs DI Anti-PatternSlides / Video
- Program to Interfaces for InjectionSlides / Video
- Composition Root: Where to Wire DependenciesSlides / Video
- Dependency Lifetimes: Transient, Singleton, ScopedSlides / Video
- Circular Constructor DependencyCode Quiz
- IoC Container ResponsibilitiesSlides / Video
- Manual DI vs IoC ContainerSlides / Video
- Constructor Over-Injection SmellQuiz
- Interface Injection TechniqueQuiz
- Container-Managed LifecyclesQuiz
- Setter Injection Trade-offsQuiz
- DI Versus Factory PatternQuiz
- The Composition RootQuiz
- Poor Man's Dependency InjectionQuiz
- Handling Circular DependenciesQuiz
- Dependency Inversion PrincipleQuiz
- Constructor Injection Trade-offsQuiz
- Registration and ResolutionQuiz
- Role of an IoC ContainerQuiz
- DI Improves TestabilityQuiz
- Using Mocks with DIQuiz
- What Inversion of Control MeansQuiz
- DI as a Form of IoCQuiz
- DI vs Service LocatorQuiz
- DI: Loose Coupling and TestabilitySlides / Video
- DIP vs DI: Not the Same ThingSlides / Video
- Method and Interface InjectionSlides / Video
- Setter / Property InjectionSlides / Video
- Constructor Injection BasicsSlides / Video
- DI: A Concrete Form of IoCSlides / Video
- Inversion of Control ExplainedSlides / Video
- Incomplete Refactor to DICode Quiz
- Spotting Tight CouplingCode Quiz
- Is This Really IoC?Code Quiz
- Constructor Injection BasicsCode Quiz
- Factory Never InvokedCode Quiz
- Method Injection UsageCode Quiz
- Manual DI Missing DependencyCode Quiz
- Container Leaked From Composition RootCode Quiz
- Register vs Resolve ConfusionCode Quiz
- Container Resolve TypoCode Quiz
- Untestable Hardcoded DependencyCode Quiz
- Hidden Service LocatorCode Quiz
- Setter Injection AssignmentCode Quiz
- Wrong Lifetime RegistrationCode Quiz
- DIP Violation Despite InjectionCode Quiz
- Coding to Concrete TypesCode Quiz
- Benefits of Dependency InjectionFlashcard
- Setter/Property InjectionFlashcard
- Manual DI vs Container DIFlashcard
- Role of a DI ContainerFlashcard
- DI and the Hollywood PrincipleFlashcard
- IoC vs Dependency InjectionFlashcard
- Constructor InjectionFlashcard
- Object Lifetimes and ScopesFlashcard
- Constructor vs Setter InjectionFlashcard
- Dependency Inversion PrincipleFlashcard
- Inversion of Control PrincipleFlashcard
- Testability via MockingFlashcard
- Common DI Anti-PatternsFlashcard
- Composition Root PatternFlashcard
- Handling Circular DependenciesFlashcard
- Service Locator Anti-PatternFlashcard
- Depending on AbstractionsFlashcard
- Registration and ResolutionFlashcard
- Method/Interface InjectionFlashcard
- Dependency Injection as IoCFlashcard