SOFTWARE ENGINEER · SUBJECT OUTLINEComing soon
Object-Oriented Design.
Learn to give objects clear responsibilities and build designs that can evolve.
This subject is being prepared.
You can explore the curriculum below. Full lessons and interactive examples are not published yet.
THE LEARNING ROADMAP
A look inside the course.
Open a chapter to explore its planned topics.
01Objects and class fundamentals8 topics
- Classes versus objectsPlanned
- State and behaviorPlanned
- Constructors and initializationPlanned
- Encapsulation and invariantsPlanned
- Access controlPlanned
- AbstractionPlanned
- PolymorphismPlanned
- Identity, equality, and immutabilityPlanned
02Turning requirements into an object model7 topics
- Actors and use casesPlanned
- Functional requirementsPlanned
- Domain vocabularyPlanned
- Entities versus value objectsPlanned
- Responsibilities and boundariesPlanned
- Interfaces and contractsPlanned
- Edge cases and invariantsPlanned
03Object relationships7 topics
- AssociationPlanned
- AggregationPlanned
- Composition and ownershipPlanned
- InheritancePlanned
- Composition versus inheritancePlanned
- DelegationPlanned
- Coupling and cohesionPlanned
04SOLID through concrete examples5 topics
- Single responsibilityPlanned
- Open/closed principlePlanned
- Liskov substitutionPlanned
- Interface segregationPlanned
- Dependency inversionPlanned
05Reading and drawing design diagrams5 topics
- Class diagramsPlanned
- Relationship notation and multiplicityPlanned
- Sequence diagramsPlanned
- State diagramsPlanned
- Activity diagramsPlanned
06Creational patterns5 topics
- Factory MethodPlanned
- Abstract FactoryPlanned
- BuilderPlanned
- PrototypePlanned
- Singleton and its tradeoffsPlanned
07Structural patterns7 topics
- AdapterPlanned
- BridgePlanned
- CompositePlanned
- DecoratorPlanned
- FacadePlanned
- FlyweightPlanned
- ProxyPlanned
08Behavioral patterns11 topics
- StrategyPlanned
- ObserverPlanned
- StatePlanned
- CommandPlanned
- Template MethodPlanned
- IteratorPlanned
- Chain of ResponsibilityPlanned
- MediatorPlanned
- MementoPlanned
- VisitorPlanned
- InterpreterPlanned
09Object state and workflows6 topics
- State transitions and illegal transitionsPlanned
- Commands versus queriesPlanned
- Domain eventsPlanned
- Validation and error handlingPlanned
- Coordinating multi-step workflowsPlanned
- Resource ownership and cleanupPlanned
10Practical design boundaries5 topics
- Separating domain logic and infrastructurePlanned
- Dependency injectionPlanned
- Repository and service responsibilitiesPlanned
- External-provider interfacesPlanned
- Configuration and extensibilityPlanned
11Concurrency in component design7 topics
- Shared mutable statePlanned
- Race conditionsPlanned
- Locks and critical sectionsPlanned
- Thread-safe collectionsPlanned
- Immutable state and ownershipPlanned
- Concurrent reservationsPlanned
- Testing concurrent behaviorPlanned
12Testing and evolving a design7 topics
- Unit tests around contractsPlanned
- Fakes, stubs, and mocksPlanned
- Integration boundariesPlanned
- Testing state transitionsPlanned
- Refactoring safelyPlanned
- Code smellsPlanned
- Applying a changed requirementPlanned
13Guided object-oriented design cases12 topics
- Vending machinePlanned
- Parking lotPlanned
- Library lendingPlanned
- Elevator controllerPlanned
- Restaurant orderingPlanned
- Meeting-room bookingPlanned
- Notification dispatcherPlanned
- Logging frameworkPlanned
- In-memory cachePlanned
- File-system modelPlanned
- Chess gamePlanned
- Task schedulerPlanned
Start learning while this subject takes shape.
Explore DSAExplore the complete DSA lessons, visual walkthroughs, and practice questions.