Skip to content
ExponaBLOG
Series · Day 100 of 100

Design Patterns in Practice

  1. 01
    Why design patterns still matter: lessons from production
    Patterns aren't about Gang of Four trivia. They're a shared vocabulary.
  2. 02
    SOLID in one carousel: a practical Design Patterns guide
    Five principles that make code easier to change.
  3. 03
    Single Responsibility, practically: a step-by-step guide
    A class should have one reason to change.
  4. 04
    Open/Closed with the strategy pattern in Design Patterns
    Add behavior without editing working code.
  5. 05
    Liskov substitution in plain words: a step-by-step guide
    If it looks like a duck but needs batteries, your abstraction is wrong.
  6. 06
    Interface segregation and dependency inversion explained
    Two principles that make testing easy.
  7. 07
    DRY, WET and AHA: a Design Patterns guide for developers
    Duplication is cheaper than the wrong abstraction.
  8. 08
    Composition over inheritance: what developers should know
    Why most of my class hierarchies are flat.
  9. 09
    YAGNI and KISS: Design Patterns best practices explained
    The two principles that prevent most over-engineering.
  10. 10
    Creational patterns overview: what developers should know
    Controlling how objects get created.
  11. 11
    Factory method: Design Patterns best practices explained
    Let a method decide which class to instantiate.
  12. 12
    Abstract factory: a Design Patterns guide for developers
    Create families of related objects that work together.
  13. 13
    Builder pattern: Design Patterns lessons from production
    Construct complex objects step by step.
  14. 14
    Singleton, and why DI replaced it: a step-by-step guide
    The most famous and most misused pattern.
  15. 15
    Prototype pattern: a Design Patterns guide for developers
    Create new objects by copying an existing one.
  16. 16
    Object pool: concepts, trade-offs and production lessons
    Reuse expensive objects instead of recreating them.
  17. 17
    Dependency injection is a pattern too in Design Patterns
    DI is just passing dependencies in.
  18. 18
    Structural patterns overview: what developers should know
    Composing objects into larger structures.
  19. 19
    Adapter pattern: Design Patterns lessons from production
    Make a third-party API look like your interface.
  20. 20
    Facade pattern: Design Patterns best practices explained
    One simple entry point to a complex subsystem.
  21. 21
    Decorator pattern: a Design Patterns guide for developers
    Add behavior by wrapping, not editing.
  22. 22
    Proxy pattern: Design Patterns best practices explained
    A stand-in that controls access to the real object.
  23. 23
    Composite pattern: a Design Patterns guide for developers
    Treat individual objects and groups the same way.
  24. 24
    Bridge pattern: Design Patterns best practices explained
    Separate what something does from how it's done.
  25. 25
    Flyweight pattern: a Design Patterns guide for developers
    Share common state to save memory.
  26. 26
    Behavioral patterns overview: what developers should know
    How objects communicate and share responsibilities.
  27. 27
    Strategy pattern: a Design Patterns guide for developers
    Swap algorithms without changing the caller.
  28. 28
    Observer pattern: a Design Patterns guide for developers
    Notify interested parties when something happens.
  29. 29
    Command pattern: Design Patterns lessons from production
    Turn a request into an object.
  30. 30
    Chain of responsibility: real-world lessons and examples
    Pass a request through a chain of handlers.
  31. 31
    Template method: Design Patterns lessons from production
    Define the skeleton, let subclasses fill the steps.
  32. 32
    State pattern: modeling an order lifecycle — a deep dive
    Replace boolean flags with explicit states.
  33. 33
    Iterator pattern and generators: lessons from production
    Traverse collections without exposing their internals.
  34. 34
    Mediator pattern: a Design Patterns guide for developers
    Objects talk through a mediator instead of each other.
  35. 35
    Memento pattern: Design Patterns lessons from production
    Capture state so you can restore it later.
  36. 36
    Visitor pattern: Design Patterns lessons from production
    Add operations to a structure without changing it.
  37. 37
    Specification pattern: a practical Design Patterns guide
    Business rules as composable objects.
  38. 38
    Repository pattern: a Design Patterns guide for developers
    A collection-like interface over persistence.
  39. 39
    Unit of Work: concepts, trade-offs and production lessons
    Commit many changes as one transaction.
  40. 40
    The service layer: a Design Patterns guide for developers
    Where use cases live.
  41. 41
    Data Mapper vs Active Record: what developers should know
    Two ways to connect objects to databases.
  42. 42
    DTOs and mappers: a Design Patterns guide for developers
    Keep your API contract separate from your domain.
  43. 43
    Value objects: Design Patterns best practices explained
    Small immutable types that make invalid states impossible.
  44. 44
    Entities and aggregates: real-world lessons and examples
    DDD building blocks for consistent models.
  45. 45
    Domain services: Design Patterns lessons from production
    For logic that doesn't belong to one entity.
  46. 46
    Domain events: Design Patterns best practices explained
    Let the domain announce what happened.
  47. 47
    Anti-corruption layer: a practical Design Patterns guide
    Protect your model from external messy models.
  48. 48
    The Result pattern: a Design Patterns guide for developers
    Make failures explicit in your return types.
  49. 49
    Null object pattern: a practical Design Patterns guide
    Replace null checks with an object that does nothing.
  50. 50
    Options and configuration patterns: a step-by-step guide
    Configuration that's typed, validated and testable.