Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Escuchando la razón: El Patrón Observer en Swift ("Listening to Reason: The Observer Pattern in Swift")

Ariel Elkin
June 01, 2017
140

Escuchando la razón: El Patrón Observer en Swift ("Listening to Reason: The Observer Pattern in Swift")

Ariel Elkin

June 01, 2017
Tweet

Transcript

  1. View Slide

  2. El Patrón Observador
    en
    Swift
    Ariel Elkin

    View Slide

  3. Agenda
    1. Teoría
    2. Implementaciones
    a. NSNotificationCenter
    b. Swift puro

    View Slide

  4. Teoría

    View Slide

  5. Teoría
    • “Observador es un patrón de diseño que define
    una dependencia del tipo uno-a-muchos entre
    objetos, de manera que cuando uno de los
    objetos cambia su estado, notifica este cambio
    a todos los dependientes.”

    View Slide

  6. El Patrón Observador es una de las maneras de definir
    la relación entre Modelo, Vista y Controlador (MVC)

    View Slide

  7. Teoría
    Sujeto
    agregar(Observador)
    desatar(Observador)
    notificar()
    Observador
    actualizar()

    View Slide

  8. Implementaciones:

    NotificationCenter

    View Slide

  9. View Slide

  10. View Slide

  11. • Mantenimiento de una lista de
    NSNotification.Name
    • Imposibilidad de definir tipos de notificaciones
    • No sabemos quienes son los observadores
    Desventajas de
    NotificationCenter

    View Slide

  12. Implementaciones:

    Swift puro

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. Agregar una variable id a la
    interfaz de los observadores:
    O bien esperar que lleguen los “existentials"

    View Slide

  20. • Tipado fuerte
    • Control de la definición de Eventos
    • Control del despacho de Eventos
    • Sabemos quienes son los observadores
    Ventajas

    View Slide

  21. • Los observadores tienen que ser clases o bien
    tener atributos públicos identificadores
    • Manejo manual de las referencias fuertes a los
    Observadores
    Desventajas

    View Slide

  22. View Slide

  23. Gracias!

    View Slide

  24. Preguntas?
    [email protected]
    @AriVocals
    arielelkin.github.io

    View Slide

  25. Fuentes
    • Design Patterns. The “Gang of
    Four”
    • Advanced Swift. Chris Eidhof, Ole
    Begemann and Airspeed Velocity
    • Pro Design Patterns in Swift.
    Adam Freeman
    • NSNotification & NSNotification
    Center. Mattt Thompson

    View Slide