Observer
Spot the polling-loop smell, implement subscribe/notify/unsubscribe on a class, and trace the lapsed listener leak that makes forgotten detach calls eat memory silently.
Strategy
Recognize the 'growing switch on type' smell, extract each branch into a swappable algorithm object or lambda, and spot the same shape inside `Array.sort`, Python `sorted(key=…)`, and Java `Comparator`.
State
Rotate the multi-method `switch(mode)` matrix into one class per mode, push transition decisions onto the modes themselves, and trace the silent-failure shape where the host re-grows an `instanceof` ladder before delegating.
Command
Freeze each button-handler call into an object holding its own `execute` and `undo`, watch the same list of objects become an undo stack or a job queue when you swap the consumer, and spot the shape in Java `Runnable`, Swing `AbstractAction`, Redux actions, and Celery or BullMQ job queues.
Chain of Responsibility
Pull each `if` from `checkAccess` into a one-method class holding one `next` reference, watch a request walk the chain choosing handle/pass/mutate-pass at every box, and spot the same shape in Express middleware, ASP.NET pipelines, Servlet filters, Python `try/except`, and DOM event bubbling.
Mediator
Collapse N(N-1) peer imports into one central coordinator that holds the rules, watch the same shape inside MVC controllers, MediatR's `_sender.Send`, and `useReducer`'s `dispatch`, and recognize when the hub drifts toward a god object.