Back to course home
0% completed
Vote For New Content
Summary
For quick reference, the following table offers a thorough analysis of the distinctive characteristics, applicability, examples, benefits, and drawbacks of each creational design pattern.
Pattern Name | Distinctive Feature | Applicability | An Example | Pros | Cons |
---|---|---|---|---|---|
Singleton | Ensures only one instance of a class exists. | When a single instance is required to handle several processes, such as configuration management or resource pooling. | Managing a single database connection pool. | - Global access to instance<br> - Ensures a single instance is initialized. | - Can hinder unit testing<br> - Can introduce hidden dependencies. |
Factory Method | Defines an object creation interface where the type is decided by the subclasses. | When you want to assign object creation to subclasses for more flexibility. | Creating different document types (PDF, Word, etc.) using a common Document class. | - Supports open-closed principle<br> - Decouples creator and products. | - Increases the number of classes<br> - Subclasses must be implemented. |
Abstract Factory | Provides a way to create groups of related objects without defining concrete classes. | When you want to abstract object creation, you need to make sure that newly formed objects are compatible within a family. | Creating GUI elements in different OS themes (Windows, macOS) using related factories. | - Ensures product compatibility<br> - Supports open-closed principle. | - Can be complex to implement<br> - Extending with new products can be challenging. |
Builder | Separates construction of complex objects from their representation. | When you need to create complex objects step by step and control the process. | Building a custom meal at a fast-food restaurant. | - Allows step-by-step construction<br> - Supports different representations. | - Can be verbose for simple objects<br> - Requires a Director (optional). |
Prototype | Creates new objects by copying an existing object. | When creating objects is more complex than copying existing ones or objects have similar structures. | Cloning a complex object, like a customized car configuration. | - Simplifies object creation<br> - Reduces subclassing. | - Deep copying can be complex<br> - Some languages lack built-in support for cloning. |
.....
.....
.....
Like the course? Get enrolled and start learning!
On this page