Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Translated all structural patterns category to Spanish (Task of issue #2277) #2890

Merged
merged 25 commits into from
Apr 4, 2024
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c2c40ea
Typo corrections
luismateoh Mar 4, 2024
881e3b2
bridge pattern translated to spanish
luismateoh Mar 4, 2024
8642fd4
builder pattern translated to spanish
luismateoh Mar 4, 2024
81eff72
context-object pattern translated to spanish
luismateoh Mar 4, 2024
4d84ac0
converter pattern translated to spanish
luismateoh Mar 4, 2024
9f12952
dependency injection pattern translated to spanish
luismateoh Mar 4, 2024
eca0df3
factory pattern translated to spanish
luismateoh Mar 4, 2024
d5aca90
factory-kit pattern translated to spanish
luismateoh Mar 4, 2024
c3273ed
factory-method pattern translated to spanish
luismateoh Mar 4, 2024
fea6835
monostate pattern translated to spanish
luismateoh Mar 4, 2024
be9b88d
multiton pattern translated to spanish
luismateoh Mar 4, 2024
7a8e7fb
object mother pattern translated to spanish
luismateoh Mar 4, 2024
f3169a1
object pool pattern translated to spanish
luismateoh Mar 4, 2024
631e4a5
property pattern translated to spanish
luismateoh Mar 4, 2024
98fcf32
prototype pattern translated to spanish
luismateoh Mar 4, 2024
0bfb7f1
registry pattern translated to spanish
luismateoh Mar 4, 2024
ab59dd5
step builder pattern translated to spanish
luismateoh Mar 4, 2024
2c8ecab
value object pattern translated to spanish
luismateoh Mar 4, 2024
34056d6
typo corrections and resources urls refactor
luismateoh Mar 4, 2024
9e2d91b
grammar corrections
luismateoh Mar 4, 2024
a1f38f3
Add image to each pattern
luishincapiebf Mar 6, 2024
c7d62ed
Merge branch 'master' into master
luismateoh Mar 13, 2024
a85e8f1
Merge branch 'iluwatar:master' into master
luismateoh Apr 2, 2024
ca60540
translate all structural patterns to Spanish
luishincapiebf Apr 3, 2024
0e084e0
Merge branch 'iluwatar:master' into master
luismateoh Apr 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
value object pattern translated to spanish
  • Loading branch information
luismateoh committed Mar 4, 2024
commit 2c8ecab96bd77ccd7ad7db01d59ebb56423dc3e5
94 changes: 94 additions & 0 deletions localization/es/value-object/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Value Object
category: Creational
language: es
tag:
- Instantiation
---

## Propósito

Proporcionar objetos que siguen la semántica de valor en lugar de la semántica de referencia. Esto significa que la
igualdad de los objetos de valor no se basa en la identidad. Dos objetos de valor son iguales cuando tienen el mismo
valor, no necesariamente siendo el mismo objeto.

## Explicación

Ejemplo del mundo real

> Existe una clase para las estadísticas de héroes en un juego de rol. Las estadísticas contienen atributos como fuerza,
> inteligencia y suerte. Las estadísticas de diferentes héroes deben ser iguales cuando todos los atributos son iguales.

En palabras simples

> Los objetos de valor son iguales cuando sus atributos tienen el mismo valor.

Wikipedia dice

> En informática, un objeto de valor es un objeto pequeño que representa una entidad simple cuya igualdad no se basa en
> la identidad: es decir, dos objetos de valor son iguales cuando tienen el mismo valor, no necesariamente siendo el mismo
> objeto.

**Ejemplo Programático**

Aquí está la clase `HeroStat` que es el objeto valor. Fíjate en el uso de la
anotación [Lombok's `@Value`](https://projectlombok.org/features/Value).

```java
@Value(staticConstructor = "valueOf")
class HeroStat {

int strength;
int intelligence;
int luck;
}
```

El ejemplo crea tres `HeroStat` diferentes y compara su igualdad.

```java
var statA = HeroStat.valueOf(10, 5, 0);
var statB = HeroStat.valueOf(10, 5, 0);
var statC = HeroStat.valueOf(5, 1, 8);

LOGGER.info(statA.toString());
LOGGER.info(statB.toString());
LOGGER.info(statC.toString());

LOGGER.info("Is statA and statB equal : {}", statA.equals(statB));
LOGGER.info("Is statA and statC equal : {}", statA.equals(statC));
```

Aquí está la salida de la consola.

```
20:11:12.199 [main] INFO com.iluwatar.value.object.App - HeroStat(strength=10, intelligence=5, luck=0)
20:11:12.202 [main] INFO com.iluwatar.value.object.App - HeroStat(strength=10, intelligence=5, luck=0)
20:11:12.202 [main] INFO com.iluwatar.value.object.App - HeroStat(strength=5, intelligence=1, luck=8)
20:11:12.202 [main] INFO com.iluwatar.value.object.App - Is statA and statB equal : true
20:11:12.203 [main] INFO com.iluwatar.value.object.App - Is statA and statC equal : false
```

## Diagrama de Clases

![alt text](./etc/value-object.png "Value Object")

## Aplicabilidad

Utilice el objeto Valor cuando

* La igualdad del objeto debe basarse en su valor.

## Usos conocidos

* [java.util.Optional](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html)
* [java.time.LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html)
* [joda-time, money, beans](http://www.joda.org/)

## Créditos

* [Patterns of Enterprise Application Architecture](http://www.martinfowler.com/books/eaa.html)
* [ValueObject](https://martinfowler.com/bliki/ValueObject.html)
* [VALJOs - Value Java Objects : Stephen Colebourne's blog](http://blog.joda.org/2014/03/valjos-value-java-objects.html)
* [Value Object : Wikipedia](https://en.wikipedia.org/wiki/Value_object)
* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=f27d2644fbe5026ea448791a8ad09c94)