ABSTRACT

Creational design patterns are patterns for abstracting and controlling the way objects are created in soƒware applications.  ey play a key role in the design of systems by making them independent of how objects in the system are created, composed, and represented (Gamma, Helm, Johnson, and Vlissides 1995).  erefore, parts of the system responsible for creating (or instantiating) objects do so through a common creational interface without knowledge of how the actual object or group of objects are created. In addition, by controlling the creational process with a common interface, enforcing creational policies becomes easier, therefore giving the system the ability to create product objects that share a common interface but vary widely in structure and behavior. Examples of creational patterns include the abstract factory, factory method, builder, prototype, and singleton.