A fully initialized instance to be copied or cloned.
Solves the problem of telescoping constructor.
Facilitates the creation of other objects.
Creates an instance of several families of classes.. TypeScript: Compile code as follow: Abstract Factory TypeScript inspired from Head First Design Pattern book
A class of which only a single instance can exist.