Structural

Decorator

Attaches additional responsibilities to objects dynamically.

HTTP middlewareStream wrappersLogging decorators

Understanding Decorator

The Decorator pattern attaches additional responsibilities to objects dynamically. It provides a flexible alternative to subclassing for extending functionality, commonly used in middleware chains.

How It Works

BaseHandler
Handle()
1

Base Component

Start with a base component that has core functionality.

1 / 4

Basic Implementation

Coffee shop with customizable add-ons:

main.go
Loading editor...

Real-World Example: HTTP Middleware

Request handling with authentication and logging decorators:

main.go
Loading editor...