Skip to content

Commit

Permalink
fix(docs): update to match
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasanchez committed Apr 23, 2021
1 parent cea886c commit ed528a5
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 34 deletions.
69 changes: 35 additions & 34 deletions 01-lecutre/quemepongo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,38 +40,49 @@ Utilizamos `enums` para establecer un dominio de datos, si bien en el caso de `C

> Especificar qué tipo de prenda estoy cargando (zapatos, camisa de mangas cortas, pantalón, etc).
Primero definiendo un _dominio de datos_ para la categoría...

```java
public class Tipo{
String nombre;
Categoria categoria;
public enum Categoria{
ACCESORIO,
PARTE_SUPERIOR,
PARTE_INFERIOR,
CALZADO
}
```

Aplica lo mismo a los tipos de prenda. Pero además determinamos la categoría a la que se asocia un tipo.

```java
public class Prenda{
public Tipo tipo;
}
```
public enum Tipo{

> Identificar a qué categoría pertenece una prenda (parte superior, calzado, parte inferior, accesorios).
LENTES(Categoria.CALZADO),
// ... TIPO(CATEGORIA)
CAMISA(Categoria.PARTE_SUPERIOR);

Primero definiendo un _dominio de datos_ para la categoría...
private Categoria categoria;

public Categoria categoria();
Tipo(Categoria cat){
categoria = cat;
}
}
```

```java
public enum Categoria{
ACCESORIO,
PARTE_SUPERIOR,
PARTE_INFERIOR,
CALZADO
public class Prenda{
public Tipo tipo;
}
```

> Identificar a qué categoría pertenece una prenda (parte superior, calzado, parte inferior, accesorios).
Luego...

```java
public class Prenda{
public Tipo tipo;
public Categoria categoria;
public Categoria categoria(){}
}
```

Expand All @@ -88,7 +99,7 @@ public enum Material{
```java
public class Prenda{
public Tipo tipo;
public Categoria categoria;
public Categoria categoria(){}
public Material material;
}
```
Expand All @@ -110,10 +121,10 @@ Si modificamos nuestra `Prenda`
```java
public class Prenda{
public Tipo tipo;
public Categoria categoria;
public Categoria categoria(){}
public Material material;
public Color color1;
public Color color2 = Color.NINGUNO;
public Color color2;
}
```

Expand All @@ -124,7 +135,7 @@ Para ello utilizamos el _keyword_ `final` para declarar una constante que **requ
```java
public class Prenda{
public final Tipo tipo;
public final Categoria categoria;
public Categoria categoria(){}
public final Color color1;
public Color color2 = Color.NINGUNO;
public final Material material;
Expand All @@ -133,25 +144,15 @@ public class Prenda{

> Evitar que haya prendas cuya categoría no se condiga con su tipo. (Ej, una remera no puede ser calzado).
Una solución sería determinar la categoría según el `tipo`.
Una propuesta sería que la prenda no posea el atributo de `categoría`, sino que lo consultáse directamente de su tipo

```java
public class Tipo{
String nombre;
Categoria categoria;

public Categoria determinarCategoria(){
return this.categoria;
public class Prenda{
//...
public Categoría categoria(){
return tipo.categoria();
}
}
```

Luego en el constructor de una `Prenda`...

```java
public Prenda(Tipo tipoPrenda){
categoria = tipoPrenda.determinarCategoria();
}
```

Entoncés, por definición, la categoría **SIEMPRE** estaría en coincidencia con el `tipo`.
Binary file modified 01-lecutre/quemepongo/images/que_me_pongo-cd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ed528a5

Please sign in to comment.