translation: Translated all creational patterns category to Spanish (Task of issue #2277) (#2813)

* Typo corrections

* bridge pattern translated to spanish

* builder pattern translated to spanish

* context-object pattern translated to spanish

* converter pattern translated to spanish

* dependency injection pattern translated to spanish

* factory pattern translated to spanish

* factory-kit pattern translated to spanish

* factory-method pattern translated to spanish

* monostate pattern translated to spanish

* multiton pattern translated to spanish

* object mother pattern translated to spanish

* object pool pattern translated to spanish

* property pattern translated to spanish

* prototype pattern translated to spanish

* registry pattern translated to spanish

* step builder pattern translated to spanish

* value object pattern translated to spanish

* typo corrections and resources urls refactor

* grammar corrections

* Add image to each pattern

---------

Co-authored-by: luismateoh <luismateohm@gmail.com>
Co-authored-by: luis.hincapie <luis.hincapie@blankfactor.com>
This commit is contained in:
authored and GitHub committed 2024-03-23 11:53:54 +02:00
1 parent 5c1ad5c006
commit dc7495e8bd
62 files changed
+2307 -78

No files matched your search

+13 -16
View File
@@ -1,9 +1,6 @@
---
layout: pattern
title: Abstract Factory
folder: abstract-factory
permalink: /patterns/abstract-factory/
categories: Creational
category: Creational
language: es
tag:
- Gang of Four
@@ -21,11 +18,11 @@ Proveer de una interfaz para crear familias de objetos relacionados dependientes
Ejemplo del mundo real
> Para crear un reino necesitamos objetos con una temática común. El reino élfico necesita un rey elfo, un castillo élfico y un ejército élfico mientras que el reino orco necesita un rey orco, un castillo orco y un ejércico orco. Hay una dependencia entre los objetos del reino.
> Para crear un reino necesitamos objetos con una temática común. El reino élfico necesita un rey elfo, un castillo élfico y un ejército élfico mientras que el reino orco necesita un rey orco, un castillo orco y un ejército orco. Hay una dependencia entre los objetos del reino.
Dicho de otra forma
> Una factoría de factorías; una factoría que agrupa otras factorias individuales pero relacionadas/dependientes sin especificar su clase concreta.
> Una factoría de factorías; una factoría que agrupa otras factorías individuales pero relacionadas/dependientes sin especificar su clase concreta.
Según Wikipedia
@@ -33,7 +30,7 @@ Según Wikipedia
**Ejemplo Programático**
Traduciendo el ejemplo anterior sobre los reinos. Primero tenemos algunas interfaces e implementaciones de los objetos del reino.
Traduciendo el ejemplo anterior sobre los reinos. Primero tenemos algunas interfaces e implementaciones de los objetos del `Castle`.
```java
public interface Castle {
@@ -75,7 +72,7 @@ public class ElfArmy implements Army {
```
Luego tenemos la abstracción e implementación de la factoría del reino.
Luego tenemos la abstracción e implementación de la factoría del reino `KingdomFactory`.
```java
public interface KingdomFactory {
@@ -121,7 +118,7 @@ public class OrcKingdomFactory implements KingdomFactory {
}
```
Ahora tenemos la factoría abstracta que nos permite hacer familias de objetos relacionados por ejemplo la factoria del reino élfico crea el castillo, rey y ejercito élficos etc.
Ahora tenemos la factoría abstracta que nos permite hacer familias de objetos relacionados por ejemplo la factoría del reino élfico `ElfKingdomFactory` crea el castillo `castle`, rey `king` y ejército `army` etc.
```java
@@ -135,7 +132,7 @@ king.getDescription();
army.getDescription();
```
Output del programa:
Salida del programa:
```java
This is the elven castle!
@@ -180,7 +177,7 @@ public static class FactoryMaker {
## Diagrama de clases
![alt text](../../../abstract-factory/etc/abstract-factory.urm.png "Diagrama de Clases de Abstract Factory")
![alt text](./etc/abstract-factory.urm.png "Diagrama de Clases de Abstract Factory")
## Aplicación
@@ -191,24 +188,24 @@ Usar el patrón Abstract Factory cuando
* El sistema debe ser configurado con una de las múltiples familias de productos.
* La familia de objetos relacionados está diseñada para ser usada en conjunto y necesitas forzar esta premisa.
* Quieres proveer de una librería de productos y solo quieres revelar sus interfaces, no su implementación.
* El tiempo de vida de la dependencia es conceptualmente mas corte que el del cliente.
* El tiempo de vida de la dependencia es conceptualmente más corto que el del cliente.
* Necesitas un valor en tiempo de ejecución para construir una dependencia.
* Quieres decidir que producto de una familia llamar en tiempo de ejecución.
* Necesitas proveer de uno o mas parámetros solo conocidos en tiempo de ejecución antes de poder resolver la dependencia.
* Necesitas proveer de uno o más parámetros solo conocidos en tiempo de ejecución antes de poder resolver la dependencia.
* Necesitas consistencia entre productos.
* No quieres cambiar el código existente al añadir nuevos productos o familias de productos al programa.
Ejemplos de casos de uso
* Elegir llamar a la implementación correcta de FileSystemAcmeService o DatabaseAcmeService o NetworkAcmeService en tiempo de ejecución.
* Escribir test unitarios se hace mucho mas sencillo.
* Escribir test unitarios se hace mucho más sencillo.
* Herramientas UI (User Interface) para diferentes SO (Sistemas Operativos).
## Consecuencias
* La inyección de dependencias en java esconde las dependencias de la clase servicio lo que puede llevar a errores de ejecución que se podrian haber evitado al compilar.
* La inyección de dependencias en java esconde las dependencias de la clase servicio lo que puede llevar a errores de ejecución que se podrían haber evitado al compilar.
* Mientras que el patrón es muy bueno creando objetos predefinidos, añadir nuevos puede ser complicado.
* El código es mas complicado de lo que deberia porque se añaden muchas interfaces y clases nuevas junto con el patrón.
* El código es más complicado de lo que debería porque se añaden muchas interfaces y clases nuevas junto con el patrón.
## Tutoriales
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB