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 2022 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

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. (TODO: migrar)

  • Selección de personal: Double dispatch, Extension method.

    • double-dispatch: trabaja con method dispatch de xtend (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.

Refactoring