Object-Oriented Programming
Classes to clean architecture: the four pillars, SOLID, all 23 GoF patterns, refactoring, testing, concurrency, DDD and five language tracks — 154 programs run for real.
Lessons
- Pattern Foundations
- Singleton
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Object Pool
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Strategy
- Observer
- Command
- State
- Template Method
- Chain of Responsibility
- Iterator
- Mediator
- Memento
- Visitor
- Interpreter
- Additional Patterns: Enterprise and Resilience
- Code Smells
- Refactoring Techniques
- Refactoring Capstone
- Introduction to Programming Paradigms
- Classes and Objects
- Access Specifiers and Encapsulation
- Abstraction and Interfaces
- Constructors and Initialization
- The Four Pillars of OOP
- Inheritance
- Polymorphism
- Association, Aggregation, Composition and Dependency
- Object Layout and Runtime Dispatch
- Advanced Inheritance and Dispatch
- Reflection and Runtime Metadata
- Metaprogramming and Compile-Time Polymorphism
- Functional OOP and Immutability
- Concurrency and Thread Safety
- Async and Event-Driven Object Design
- Serialization, Persistence and ORM
- API and Library Design
- Unit Testing and Testable Design
- Test Doubles
- OOP Testing Strategies
- Design for Testability
- Secure Object Design
- Reliability and Robustness
- Performance and Memory Efficiency
- Layered Architecture
- Hexagonal Architecture (Ports and Adapters)
- Clean Architecture
- Domain-Driven Design (DDD)
- Enterprise Application Patterns
- Event-Driven and Distributed Design
- C++ OOP Track
- Java OOP Track
- C# OOP Track
- Python OOP Track
- TypeScript and JavaScript OOP Track
- Cross-Language Comparison
- Beginner Projects
- Intermediate Projects
- Advanced Projects
- Fundamentals Interview Bank
- Intermediate Interview Bank
- Advanced Interview Bank
- Practical Coding and Design Interviews
- What to Learn Next & Final Checklist
- Static, Instance and Constant Members
- `this`, `self`, `super` and Base Access
- Copying, Moving and Object Semantics
- Memory Management and Resource Lifetime
- Exceptions and Error Handling
- Method and Constructor Overloading
- Operator Overloading
- Templates and Generics
- Enums, Value Objects and Domain Modeling
- SOLID Principles
- DRY, KISS, YAGNI and Other Heuristics
- Coupling, Cohesion and Dependency Direction
- Inversion of Control and Dependency Injection
- UML Class Diagrams
- Other UML Diagrams
- Object-Oriented Analysis and Design (OOAD)
- Course Overview & Running Example