
Proporcionan varios mecanismos de creación de objetos que incrementan la flexibilidad y la reutilización de código existente.
SINGLETON
Asegura que una clase solo tenga una instancia y proporciona un punto de acceso global a ella.
Ejemplo: Un sistema de registro de usuarios donde solo hay un administrador.
Ejemplo sencillo: Piensa en el presidente de un país. Solo hay uno, y todos lo conocen. No puedes tener más de un presidente a la vez.
FACTORY METHOD
Define una interfaz para crear objetos pero deja que las subclases decidan que clase instanciar.
Ejemplo: En una aplicación gráfica, podrías tener una fábrica que crea diferentes tipos de botones dependiendo del sistema operativo.
Ejemplo sencillo: Imagina que tienes una fábrica de juguetes. Dependiendo de la época del año, la fábrica produce diferentes tipos de juguetes, pero sigue usando el mismo proceso básico.
ABSTRACT FACTORY
Proporciona una interfaz para crear familia de objetos relacionados o dependientes sin especificar sus clases concretas.
Ejemplo: Una fábrica abstracta podría crear componentes de interfaz de usuario (botones, ventanas) para Windows o MacOs.
Ejemplo sencillo: Es como un conjunto de fábricas que producen diferentes cosas. Por ejemplo, una fábrica que produce muebles podría tener una “fábrica de mesas” y una “fábrica de sillas”, pero todas siguen un mismo estilo.
BUILDER
Separa la construcción de un objeto complejo de su representación, permitiendo crear diferentes representaciones con el mismo proceso de construcción.
Ejemplo: Un constructor para crear diferentes configuraciones de autos (con o sin techo solar, con asientos de piel o tela, etc.)
Ejemplo sencillo: Piensa en un menú de comida rápida. Puedes elegir cómo quieres tu hamburguesa (con queso, sin cebolla, extra tocino), y el cocinero la construye paso a paso según tus instrucciones.
PROTOTYPE
Permite crear nuevos objetos copiando una instancia existente en lugar de crear nuevos objetos desde cero.
Ejemplo: Un programa de diseño gráfico que permite duplicar formas ya creadas para nuevas versiones rápidamente.
Ejemplo sencillo: Es como hacer copias de un documento en una fotocopiadora. Tomas algo que ya existe y lo duplicas para hacer más versiones, sin tener que escribirlo desde cero.
Para mayor información, consulta el siguiente enlace: https://refactoring.guru/es/design-patterns/creational-patterns