Singleton Pattern: Ensures a class has only one instance and provides a global point of access to it.
Factory Method Pattern: Defines an interface for creating objects, but allows subclasses to decide which class to instantiate.
Abstract Factory Pattern: Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
Adapter Pattern: Allows objects with incompatible interfaces to work together by providing a wrapper with a compatible interface.
Decorator Pattern: Adds behavior to objects dynamically without affecting the behavior of other objects from the same class.
Facade Pattern: Provides a unified interface to a set of interfaces in a subsystem, making it easier to use.
Observer Pattern: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Strategy Pattern: Defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
Template Method Pattern: Defines the skeleton of an algorithm in a method, deferring some steps to subclasses. It allows subclasses to redefine certain steps of an algorithm without changing its structure.
Builder Pattern: Separates the construction of a complex object from its representation, allowing the same construction process to create different representations.
Chain of Responsibility Pattern: Allows a set of classes to handle a request by passing it along a chain until it is handled.
Iterator Pattern: Provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation.