- Hacer fork del proyecto y trabajarlo en sus propios repositorios
- Refactorizar el código para utilizar singleton para evitar crear múltiples instancias para las clases que representan dispositivos (display, teclado, modem, gps, ethernet)
- Refactorizar el código para utilizar builder para construir el objeto Transaction (tomar como ejemplo CardBuilder y ExpirationDateBuilder)
- Refactorizar el código para utilizar un AbstractFactory y soportar múltiples modelos/marcas de terminal con el mismo código en Application basado en interfaces
- Refactorizar el código para utilizar Strategy para manejar los dispositvos relacionados a la comunicación en el método doSale de Application
Referencia: https://sourcemaking.com/design_patterns
Fecha estimada de entrega: Martes 24 de marzo