Low Level Design
How the Adapter pattern wraps legacy or third-party classes to make them work with your system's interface — without rewriting existing code.
How the Bridge pattern prevents class explosion by separating what an object does from how it does it, letting both hierarchies evolve independently.
How the Composite pattern lets you compose objects into tree hierarchies where individual items and groups of items share the same interface — eliminating special-case logic.
How the Decorator pattern wraps objects to add responsibilities at runtime, eliminating the combinatorial subclass explosion that inheritance creates.
How the Facade pattern provides a single, clean entry point to a complex system of classes — hiding the internals and decoupling clients from subsystem details.
How the Proxy pattern adds access control, caching, logging, and lazy initialisation to objects without modifying their original class.