JavaScript Design Patterns
https://www.dofactory.com/javascript/design-patterns
JavaScript Design Patterns
Introduction
Design patterns are advanced object-oriented solutions to commonly occurring software problems. Patterns are about reusable designs and interactions of objects. Each pattern has a name and becomes part of a vocabulary when discussing complex design solutions.
The 23 Gang of Four (GoF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups: Creational, Structural, and Behavioral (see below for a complete list).
In this tutorial we provide JavaScript examples for each of the GoF patterns. Mostly, they follow the structure and intent of the original pattern designs. These examples demonstrate the principles behind each pattern, but are not optimized for JavaScript.
JavaScript-optimized patterns are available in our Dofactory JS, a unique guide for web app developers and architects developering with JavaScript and jQuery. Not only does it include optimized GoF patterns (using namespacing, closures, modules, immediate functions, prototypes, etc), but also Modern Patterns, Model View Patterns, Architecture Patterns, jQuery Patterns, and more. To learn more click here.
Creational Patterns
Creates an instance of several families of classes
Separates object construction from its representation
Creates an instance of several derived classes
A fully initialized instance to be copied or cloned
A class of which only a single instance can exist
Structural Patterns
Match interfaces of different classes
Separates an object’s interface from its implementation
A tree structure of simple and composite objects
Add responsibilities to objects dynamically
A single class that represents an entire subsystem
A fine-grained instance used for efficient sharing
An object representing another object
Behavioral Patterns
A way of passing a request between a chain of objects
Encapsulate a command request as an object
A way to include language elements in a program
Sequentially access the elements of a collection
Defines simplified communication between classes
Capture and restore an object's internal state
A way of notifying change to a number of classes
Alter an object's behavior when its state changes
Encapsulates an algorithm inside a class
Defer the exact steps of an algorithm to a subclass
Defines a new operation to a class without change
Last updated