Design Patterns
Design patterns are general, reusable solutions to commonly occurring problems in software design, providing a shared vocabulary and proven structural templates rather than finished code.
90 resources across 2 libraries
Glossary Terms(23)
Design Patterns
Design patterns are general, reusable solutions to commonly occurring problems in software design, providing a shared vocabulary and proven structural template…
SOLID Principles
SOLID is an acronym for five object-oriented design principles — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency…
Domain-Driven Design (DDD)
Domain-Driven Design (DDD) is a software design approach, introduced by Eric Evans, that structures complex software around a deep model of the business domain…
Object-Oriented Programming (OOP)
Object-oriented programming (OOP) is a programming paradigm that organizes code around objects — bundles of data (attributes) and behavior (methods) — using co…
Singleton Pattern
The Singleton pattern is a creational design pattern that restricts a class to a single instance and provides a global point of access to that instance.
Factory Pattern
The Factory pattern is a creational design pattern that delegates object creation to a dedicated method or class, so calling code can obtain new instances with…
Observer Pattern
The Observer pattern is a behavioral design pattern in which an object (the subject) maintains a list of dependents (observers) and automatically notifies them…
Strategy Pattern
The Strategy pattern is a behavioral design pattern that defines a family of interchangeable algorithms, encapsulates each one behind a common interface, and l…
Decorator Pattern
The Decorator pattern is a structural design pattern that attaches additional responsibilities to an object dynamically by wrapping it in one or more decorator…
Adapter Pattern
The Adapter pattern is a structural design pattern that converts the interface of one class into another interface that clients expect, allowing otherwise inco…
Builder Pattern
The Builder pattern is a creational design pattern that separates the construction of a complex object from its representation, using a step-by-step builder ob…
Command Pattern
The Command pattern is a behavioral design pattern that encapsulates a request or action as a standalone object, allowing it to be parameterized, queued, logge…
Repository Pattern
The Repository pattern is an architectural pattern that mediates between the domain/business logic and data mapping layers, exposing a collection-like interfac…
Interpreter Pattern
The Interpreter Pattern is a behavioral design pattern that defines a grammatical representation for a language and provides an interpreter that evaluates sent…
Visitor Pattern
The Visitor Pattern is a behavioral design pattern that lets you define a new operation on a set of related classes without modifying those classes, by moving…
Mediator Pattern
The Mediator Pattern is a behavioral design pattern that centralizes communication between a set of interacting objects into a single mediator object, so those…
Flyweight Pattern
The Flyweight Pattern is a structural design pattern that minimizes memory usage by sharing as much data as possible between many similar objects, separating a…
Proxy Pattern
The Proxy Pattern is a structural design pattern that provides a surrogate or placeholder object which controls access to another object, allowing behavior suc…
Composite Pattern
The Composite Pattern is a structural design pattern that composes objects into tree structures to represent part-whole hierarchies, letting clients treat indi…
Bridge Pattern
The Bridge Pattern is a structural design pattern that decouples an abstraction from its implementation so the two can vary and evolve independently, by giving…
Facade Pattern
The Facade Pattern is a structural design pattern that provides a single, simplified interface to a larger, more complex subsystem of classes, making that subs…
Chain of Responsibility Pattern
The Chain of Responsibility Pattern is a behavioral design pattern that passes a request along a chain of handler objects, each of which decides either to proc…
Iterator Pattern
The Iterator Pattern is a behavioral design pattern that provides a standard way to sequentially access the elements of a collection without exposing its under…
Interview Questions(67)
What is a Design Pattern?
A design pattern is a reusable, named solution to a recurring software design problem, expressed as a template of collaborating classes and objects rather than…
What is the Singleton Pattern?
The Singleton pattern restricts a class to exactly one instance and provides a single global access point to that instance, typically via a static method.
What is the Factory Pattern?
The Factory pattern delegates object creation to a dedicated method or class instead of calling a constructor directly, so callers depend on an interface rathe…
What is the Observer Pattern?
The Observer pattern defines a one-to-many dependency where a subject notifies a list of registered observers automatically whenever its state changes.
What is the Strategy Pattern?
The Strategy pattern defines a family of interchangeable algorithms, encapsulates each one behind a common interface, and lets the client swap the algorithm at…
What is the Open-Closed Principle?
The Open-Closed Principle (OCP) states that software entities — classes, modules, functions — should be open for extension but closed for modification, meaning…
What is the Builder Pattern?
The Builder pattern is a creational design pattern that separates the step-by-step construction of a complex object from its final representation, letting the…
What is the Prototype Pattern?
The Prototype pattern is a creational design pattern that creates new objects by cloning an existing, fully configured instance rather than constructing one fr…
What is the Adapter Pattern?
The Adapter pattern is a structural design pattern that converts the interface of an existing class into another interface a client expects, letting otherwise…
What is the Bridge Pattern?
The Bridge pattern is a structural design pattern that decouples an abstraction from its implementation by putting them in two separate class hierarchies conne…
What is the Composite Pattern?
The Composite pattern is a structural design pattern that composes objects into tree structures to represent part-whole hierarchies, letting clients treat indi…
What is the Decorator Pattern?
The Decorator pattern attaches additional responsibilities to an object dynamically by wrapping it in one or more decorator objects that share the same interfa…
What is the Facade Pattern?
The Facade pattern provides a single, simplified interface that hides the complexity of a larger subsystem made of many interacting classes, so clients can acc…
What is the Flyweight Pattern?
The Flyweight pattern minimizes memory usage by sharing immutable, common state across many similar objects instead of storing that state redundantly in each i…
What is the Proxy Pattern?
The Proxy pattern provides a surrogate object that implements the same interface as a real subject and controls access to it, allowing extra logic such as lazy…
What is the Chain of Responsibility Pattern?
The Chain of Responsibility pattern passes a request along a chain of handler objects until one of them decides to process it, decoupling the sender of a reque…
What is the Command Pattern?
The Command pattern encapsulates a request as a standalone object, bundling the receiver, the action to invoke, and its parameters, so callers can issue, queue…
What is the Interpreter Pattern?
The Interpreter pattern defines a class-based representation of a language’s grammar, using an object structure where each grammar rule is a class, and an inte…
What is the Iterator Pattern?
The Iterator pattern provides a standard way to access the elements of a collection sequentially without exposing its underlying representation, using a separa…
What is the Mediator Pattern?
The Mediator pattern centralizes communication between a set of objects into a single mediator object, so those objects (colleagues) interact only through the…
What is the Memento Pattern?
The Memento pattern captures and externalizes an object’s internal state so it can be restored later, without violating encapsulation by exposing that state’s…
What is the State Pattern?
The State pattern is a behavioral design pattern that lets an object change its behavior when its internal state changes, by delegating state-specific logic to…
What is the Template Method Pattern?
The Template Method pattern is a behavioral design pattern where a base class defines the fixed skeleton of an algorithm in a single method, deferring specific…
What is the Visitor Pattern?
The Visitor pattern is a behavioral design pattern that lets you add new operations over a fixed set of related classes without modifying those classes, by mov…
Showing 24 of 67.