Large-scale JavaScript Application Architecture
Adapted from Prof. Necula CS 169, Berkeley1 Design Patterns V22.0474-001 Software Engineering Lecture 9, Spring 2006 Clark Barrett, New York University.