Ejemplos
Previamente tenés que tener instalado el entorno.
Todos los ejemplos están escritos para la versión más reciente de Kotlin a febrero 2024 y trabajan con la tecnología Gradle.
Te dejamos las instrucciones de instalación que son bastante simples. Si encontrás un error, mandá un mail a tu docente amigo así lo corregimos.
Iniciales
Vehículos: Clases e interfaces. Testeo unitario.
Coleccionables: Generics.
Monedero: manejo de errores.
Seguros: cómo corregir un error en runtime
Implementación de patrones
Manejo de proyectos: Strategy, Composite, Instancias o clases.
Clientes de una tarjeta de crédito: existen varios branches que muestran diferentes conceptos
if: el branch master trabaja con condicionales
01-builder: en este branch se utiliza un builder para crear el cliente con distintas condiciones comerciales y se mantienen los condicionales (if)
02-strategy: las condiciones comerciales se implementan como strategies + Builder.
03-decorator: decora al cliente para implementar las condiciones comerciales + Builder.
04-delegated-classes: implementa un decorator mediante delegated classes que es un mecanismo propio de Kotlin + Builder.
Lista de correo: Strategy, Observer, Testing con Stubs y Mocks, Dependency Injection, Decorator, Uso de bloques con Builders.
master: strategy que implementa tipos de suscripción y de envío de la lista. Mocks y su testeo unitario. Null Object pattern.
01-observers-constructor: trabaja la inyección de dependencias del MessageSender en el constructor del MailObserver
02-observers-setter: trabaja la inyección de dependencias del MessageSender como setter de un atributo del MailObserver
03-observers-singleton: el componente que envía mails es un Singleton y esto hace fallar los tests.
04-observers-service-locator: implementa el patrón arquitectural Service Locator para desacoplar el envío de mensajes de la aplicación.
Microprocesador: Command, Composite, Patrones creacionales, Uso de bloques.
master: primera parte del ejercicio. Command pattern.
creacionales: segunda parte del ejercicio (builder de un programa, y un iterador de instrucciones que utiliza un mapa para transformar un entero en un command)
Máquina de Helado: Command, Adapter, Builder, Testing con Stubs y Mocks.
Selección de personal: Double dispatch, Extension method.
double-dispatch: trabaja con method dispatch de Xtend (técnica que no existe en Kotlin, recomendado para ver)
dispatch: trabaja con double dispatch manual
Testeo con Stubs y Mocks
Ruleta virtual, tiene cuatro branches iterativos que se explican en el video stubs y mocks.
Otros ejemplos como la lista de correo o la máquina de helado también muestran como es el testeo con stubs o mocks.