- Por Emmanuel Valverde
- ·
- Publicado 28-feb-2024 0:00:00
Morning routine
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
El objetivo es construir un cajero automático y nuestra primera tarea es crear el software que desglosará qué billetes y monedas debe recibir el cliente cuando intente hacer un retiro.
El contenido del cajero es:
| Valor | Tipo |
|-------|---------|
| 500 | billete |
| 200 | billete |
| 100 | billete |
| 50 | billete |
| 20 | billete |
| 10 | billete |
| 5 | billete |
| 2 | modena |
| 1 | moneda |
Entrada:
Como usuario
Quiero retirar 1725€
Salida:
2 billetes de 200
1 billete de 20
1 billete de 10
2 monedas de 2
Obsesión primitiva y pareja ajustada a la presentación
public interface ATM {
public String withdraw(int quantity);
}
Devuelve una lista de DTO u Objetos de Valor
public interface ATM {
public List<Money> withdraw(int quantity);
}
Outside-in
public interface ATM {
public void withdraw(int quantity);
}
El cajero automático tiene la siguiente distribución de dinero.
El estado inicial de cualquier cajero automático
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 2 |
| 200 | billete | 3 |
| 100 | billete | 5 |
| 50 | billete | 12 |
| 20 | billete | 20 |
| 10 | billete | 50 |
| 5 | billete | 100 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Estado inicial del cajero automático:
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 2 |
| 200 | billete | 3 |
| 100 | billete | 5 |
| 50 | billete | 12 |
| 20 | billete | 20 |
| 10 | billete | 50 |
| 5 | billete | 100 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Entrada
Como usuario
Quiero retirar 1725€
Salida
2 billetes de 500
3 billetes de 200
1 billetes de 100
1 billetes de 20
1 billete de 5
Estado del cajero automático después de la salida
| Valor | Tipo | Número de unidades |
|-------|---------|---------------------|
| 500 | billete | 0 |
| 200 | billete | 0 |
| 100 | billete | 4 |
| 50 | billete | 12 |
| 20 | billete | 19 |
| 10 | billete | 50 |
| 5 | billete | 99 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Entrada
Como usuario
He retirado 1825€
Salida
4 billetes de 100
12 billetes de 50
19 billetes de 20
44 billetes de 10
1 billetes de 5
Estado del cajero automático después de la salida
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 0 |
| 200 | billete | 0 |
| 100 | billete | 0 |
| 50 | billete | 0 |
| 20 | billete | 0 |
| 10 | billete | 6 |
| 5 | billete | 98 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Los ejemplos gráficos que ves son una referencia de cómo funciona la kata, no tienes que aplicarlos si no quieres.
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
Historia: Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza..
Introducción Con el propósito de practicar TDD, esta es una de las katas más avanzadas que puedes hacer. A estas alturas ya deberías dominar las..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores