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:
Luis Mateo Hincapié Martinez
2024-03-23 11:53:54 +02:00
committed by GitHub
co-authored by luismateoh luis.hincapie
parent 5c1ad5c006
commit dc7495e8bd
62 changed files with 2307 additions and 78 deletions
+92
View File
@@ -0,0 +1,92 @@
---
title: Registry
category: Creational
language: es
tag:
- Instantiation
---
## Propósito
Almacena los objetos de una única clase y proporciona un punto de acceso global a los mismos.
Similar al patrón Multiton, la única diferencia es que en un registro no hay restricción en el número de objetos.
## Explicación
En pocas palabras
> El registro es un objeto bien conocido que otros objetos pueden utilizar para encontrar objetos y servicios comunes.
**Ejemplo Programático**
A continuación se muestra una clase `Cliente
```java
public class Customer {
private final String id;
private final String name;
public Customer(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
```
Este registro de los objetos `Customer` es `CustomerRegistry`.
```java
public final class CustomerRegistry {
private static final CustomerRegistry instance = new CustomerRegistry();
public static CustomerRegistry getInstance() {
return instance;
}
private final Map<String, Customer> customerMap;
private CustomerRegistry() {
customerMap = new ConcurrentHashMap<>();
}
public Customer addCustomer(Customer customer) {
return customerMap.put(customer.getId(), customer);
}
public Customer getCustomer(String id) {
return customerMap.get(id);
}
}
```
## Diagrama de Clases
![Registry](./etc/registry.png "Registry pattern diagrama de clases")
## Aplicabilidad
Usar el patrón Registry cuando
* El cliente quiere una referencia de algún objeto, por lo que el cliente puede buscar ese objeto en el registro del
objeto.
## Consecuencias
Un gran número de objetos voluminosos añadidos al registro daría lugar a un gran consumo de memoria, ya que los objetos
del registro no se recogen de la basura.
## Créditos
* https://www.martinfowler.com/eaaCatalog/registry.html
* https://wiki.c2.com/?RegistryPattern
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB