Flyweight is a structural design pattern that aims to minimize memory usage or computational overhead by sharing objects to improve performance. This pattern is suitable for scenarios that require a large number of similar objects. By sharing part of the state of these similar objects, memory consumption can be effectively reduced.
The Facade pattern is a structural pattern whose purpose is to provide a simplified interface, hide the complexity of the system, and make it easier for clients to use the system.
The Decorator pattern is a structural design pattern that allows you to add new behaviors to the original object by putting the object into a special encapsulation class that contains the behavior. This pattern can dynamically attach responsibilities to objects without affecting other objects.
The Composite Pattern is a structural design pattern that allows objects to be combined into a tree structure to represent a part-whole hierarchy. The Composite Pattern allows clients to uniformly handle single objects and object combinations without distinguishing their types.
The Bridge pattern is a structural design pattern that can split a large class or a series of closely related classes into two independent hierarchies of abstraction and implementation, so that they can be used separately during development. The Bridge pattern achieves this separation through composition rather than inheritance.
The Adapter pattern converts the interface of a class into another interface that the client expects. The adapter allows classes with incompatible interfaces to work together seamlessly. Object adapters use composition, and class adapters use multiple inheritance.