Design Patterns
Computer Sci.
Design Patterns
Quick Study
Notes Home
C#
.Net fundamentals
Advanced c# topics
ASP.net
C# Interview Topics
C# quick-study
Entity Framework Core
DotNetCore APIs
Notes Home
JS
JS Fundamentals
Advanced JS Topics
Object Oriented in JS
JS Interview Related
JS Data Structures
strange JS
JS Frameworks
Notes Home
Salesforce
Notes Home
WebDevelopment
Notes Home
Interview Prep
JS interview prep
c# interview prep
SQL interview prep
Notes Home
Design Pattern links
Difference Between Architecture and Design
Design Patterns in Modern Javascript
Design Pattern Book
Head First Design Patterns
Creational Patterns
Builders (piecewise construction of objects while making the target object's constructors inaccessible).
Factories (class member that acts as a way of creating object in one go (typically replaces a constructor))
Prototypes (building from an already existing object)
Singleton (idea of only one instance of a particular component in your application)
Structural Patterns
Adapter
(converts the unexpected usage of a class to an expected one)
Bridge
(connect two distinct hierarchies together through a common parameter)
Composite
(allows us to provide identical interfaces for individual objects and collections of objects)
Decorator
(given a class and you want to extend that class's functionality)
Facade
(put complex interaction behind a much simpler interface (facade))
Flyweight
(sometimes called token or cookie)
Proxy
Similar to Decorator Pattern but tries to preserve exactly the API
Behavioral Patterns
Chain of Responsibility
(simple design pattern that lets components process a command (or a query) in turn)
Command
(send objects commands or instructions on how to do something. )
Interpreter
(Uncommon Design Pattern (Lexing / Parsing))
Iterator
(An object that is used to traverse some structure or other.)
Mediator
(situations when you don't necessarily want objects to be aware of each other's presence.)
Memento
(when you care about being able to roll back the system to a particular state)
Null Object
(you don't want a piece of functionality but it's built into the interface....you make a NULL object)
Observer
(let's one component notify other components that something has happened)
State
(state controls behavior and state can be changed.)
Strategy
Template Method
Visitor