Creational patterns refer to the various ways of constructing and instantiating objects. Since OOP groups data and behavior together, and since a class may inherit the structure and behavior from an ancestor class, there are additional levels of complexity involved when building a large-scale system. By design, Julia has already gotten rid of many issues by not allowing fields to be declared in abstract types and not allowing creating new subtypes from concrete types. Nevertheless, some of these patterns could be helpful in certain situations.
The creational patterns include the factory method, abstract factory, singleton, builder, and prototype patterns. We shall discuss them in detail in the following sections.