Here are some common design patterns used in software development:
- Creational Patterns:
- Singleton: Ensures a class has only one instance and provides a global point of access to it.
- Factory Method: Defines an interface for creating an object but lets subclasses alter the type of objects that will be created.
- Abstract Factory: Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
- Builder: Separates the construction of a complex object from its representation, allowing the same construction process to create different representations.
- Prototype: Creates new objects by copying an existing object, known as the prototype.
- Structural Patterns:
- Adapter: Allows incompatible interfaces to work together by converting the interface of a class into another interface that clients expect.
- Bridge: Separates an object’s abstraction from its implementation so that the two can vary independently.
- Composite: Composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions uniformly.
- Decorator: Adds additional responsibilities to an object dynamically by wrapping it.
- Facade: Provides a simplified interface to a complex subsystem.
- Flyweight: Reduces the cost of creating and manipulating a large number of similar objects by sharing common parts of the object state.
- Proxy: Provides a surrogate or placeholder for another object to control access to it.
- Behavioral Patterns:
- Chain of Responsibility: Passes a request along a chain of handlers, where each handler decides either to process the request or to pass it to the next handler in the chain.
- Command: Encapsulates a request as an object, thereby allowing for parameterization of clients with queues, requests, and operations.
- Interpreter: Defines a representation for a language’s grammar and uses that representation to interpret sentences in the language.
- Iterator: Provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
- Mediator: Defines an object that encapsulates how a set of objects interact, promoting loose coupling by keeping objects from referring to each other explicitly.
- Memento: Captures and externalizes an object’s internal state without violating encapsulation, so that the object can be restored to this state later.
- Observer: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
- State: Allows an object to alter its behavior when its internal state changes, appearing to change its class.
- Strategy: Defines a family of algorithms, encapsulates each one, and makes them interchangeable, allowing the algorithm to vary independently from clients that use it.
- Template Method: Defines the skeleton of an algorithm in a method, deferring some steps to subclasses.
- Visitor: Represents an operation to be performed on the elements of an object structure, allowing new operations to be defined without changing the classes of the elements on which it operates.
These design patterns provide proven solutions to common problems in software design, promoting code reuse, flexibility, and maintainability.
Published 6 months ago
Version 1.0admin
hi admin here!Community Manager
Archival Blog
Follow this blog board to get notified when there's new activity