Software Design Patterns & Principles
Introduction & Core Concepts
54 lessons in Software Design Patterns & Principles
- Prototype Clone Aliasing in Domain AggregateCode Quiz
- Domain Modeling vs Pattern Trade-offsQuiz
- The Four OOP PillarsQuiz
- Modeling a Has-A RelationshipCode Quiz
- Modeling Relationships Between ClassesQuiz
- Modeling Problems With ClassesSlides / Video
- Modeling with Classes & RelationshipsFlashcard
- Inheritance and the super() CallCode Quiz
- Composition vs Inheritance BasicsQuiz
- Patterns, Maintainability and ReusabilitySlides / Video
- When to Use Patterns (and When Not To)Slides / Video
- Anatomy of a Design PatternSlides / Video
- What Are Design PrinciplesSlides / Video
- The Three Pattern CategoriesSlides / Video
- Patterns vs Principles vs IdiomsSlides / Video
- Origins of the Gang of FourSlides / Video
- Why Design Patterns MatterSlides / Video
- What Is a Software Design PatternSlides / Video
- Composition Over InheritanceFlashcard
- YAGNI PrincipleFlashcard
- EncapsulationFlashcard
- Principle vs. PatternFlashcard
- CouplingFlashcard
- Why Design Patterns MatterFlashcard
- KISS PrincipleFlashcard
- Three Pattern CategoriesFlashcard
- DRY PrincipleFlashcard
- Separation of ConcernsFlashcard
- AbstractionFlashcard
- Program to an InterfaceFlashcard
- SOLID OverviewFlashcard
- What Is an Anti-PatternFlashcard
- When to Use PatternsFlashcard
- What Is a Design PatternFlashcard
- CohesionFlashcard
- Origin: Gang of FourFlashcard
- Program to an InterfaceQuiz
- Three Pattern CategoriesQuiz
- Patterns vs ArchitectureQuiz
- When to Apply PatternsQuiz
- Inheritance BasicsQuiz
- Encapsulation BasicsQuiz
- Reusability and MaintainabilityQuiz
- Origin of Design PatternsQuiz
- Composition Over InheritanceQuiz
- What Is a Design PatternQuiz
- Patterns vs PrinciplesQuiz
- Patterns vs AlgorithmsQuiz
- Anatomy of a PatternQuiz
- Coupling and CohesionQuiz
- What Is an Anti-PatternQuiz
- Why Use Design PatternsQuiz
- Polymorphism BasicsQuiz
- Abstraction in DesignQuiz