Skip to learning content
Back to Software Engineer
SOFTWARE ENGINEER · SUBJECT OUTLINEComing soon

Object-Oriented Design.

Learn to give objects clear responsibilities and build designs that can evolve.

13 chapters · 92 planned topics
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
  1. Classes versus objectsPlanned
  2. State and behaviorPlanned
  3. Constructors and initializationPlanned
  4. Encapsulation and invariantsPlanned
  5. Access controlPlanned
  6. AbstractionPlanned
  7. PolymorphismPlanned
  8. Identity, equality, and immutabilityPlanned
02Turning requirements into an object model7 topics
  1. Actors and use casesPlanned
  2. Functional requirementsPlanned
  3. Domain vocabularyPlanned
  4. Entities versus value objectsPlanned
  5. Responsibilities and boundariesPlanned
  6. Interfaces and contractsPlanned
  7. Edge cases and invariantsPlanned
03Object relationships7 topics
  1. AssociationPlanned
  2. AggregationPlanned
  3. Composition and ownershipPlanned
  4. InheritancePlanned
  5. Composition versus inheritancePlanned
  6. DelegationPlanned
  7. Coupling and cohesionPlanned
04SOLID through concrete examples5 topics
  1. Single responsibilityPlanned
  2. Open/closed principlePlanned
  3. Liskov substitutionPlanned
  4. Interface segregationPlanned
  5. Dependency inversionPlanned
05Reading and drawing design diagrams5 topics
  1. Class diagramsPlanned
  2. Relationship notation and multiplicityPlanned
  3. Sequence diagramsPlanned
  4. State diagramsPlanned
  5. Activity diagramsPlanned
06Creational patterns5 topics
  1. Factory MethodPlanned
  2. Abstract FactoryPlanned
  3. BuilderPlanned
  4. PrototypePlanned
  5. Singleton and its tradeoffsPlanned
07Structural patterns7 topics
  1. AdapterPlanned
  2. BridgePlanned
  3. CompositePlanned
  4. DecoratorPlanned
  5. FacadePlanned
  6. FlyweightPlanned
  7. ProxyPlanned
08Behavioral patterns11 topics
  1. StrategyPlanned
  2. ObserverPlanned
  3. StatePlanned
  4. CommandPlanned
  5. Template MethodPlanned
  6. IteratorPlanned
  7. Chain of ResponsibilityPlanned
  8. MediatorPlanned
  9. MementoPlanned
  10. VisitorPlanned
  11. InterpreterPlanned
09Object state and workflows6 topics
  1. State transitions and illegal transitionsPlanned
  2. Commands versus queriesPlanned
  3. Domain eventsPlanned
  4. Validation and error handlingPlanned
  5. Coordinating multi-step workflowsPlanned
  6. Resource ownership and cleanupPlanned
10Practical design boundaries5 topics
  1. Separating domain logic and infrastructurePlanned
  2. Dependency injectionPlanned
  3. Repository and service responsibilitiesPlanned
  4. External-provider interfacesPlanned
  5. Configuration and extensibilityPlanned
11Concurrency in component design7 topics
  1. Shared mutable statePlanned
  2. Race conditionsPlanned
  3. Locks and critical sectionsPlanned
  4. Thread-safe collectionsPlanned
  5. Immutable state and ownershipPlanned
  6. Concurrent reservationsPlanned
  7. Testing concurrent behaviorPlanned
12Testing and evolving a design7 topics
  1. Unit tests around contractsPlanned
  2. Fakes, stubs, and mocksPlanned
  3. Integration boundariesPlanned
  4. Testing state transitionsPlanned
  5. Refactoring safelyPlanned
  6. Code smellsPlanned
  7. Applying a changed requirementPlanned
13Guided object-oriented design cases12 topics
  1. Vending machinePlanned
  2. Parking lotPlanned
  3. Library lendingPlanned
  4. Elevator controllerPlanned
  5. Restaurant orderingPlanned
  6. Meeting-room bookingPlanned
  7. Notification dispatcherPlanned
  8. Logging frameworkPlanned
  9. In-memory cachePlanned
  10. File-system modelPlanned
  11. Chess gamePlanned
  12. Task schedulerPlanned
Start learning while this subject takes shape.

Explore the complete DSA lessons, visual walkthroughs, and practice questions.

Explore DSA