ios swift callback delegates closures

iOS Swift: Closures(Callbacks) versus Delegates, ¿cuándo usar cuál?



(1)

(Respuesta basada en la opinión para una pregunta basada en la opinión)

Las preguntas no deberían ser cuál es mejor, debería ser cuál es la mejor solución para el problema que estoy tratando de resolver.

Mi regla simple: si algo requiere una función como su interfaz, una devolución de llamada suele ser una buena solución. Si se requiere más de una función, especialmente cuando se requieren para la función básica de un objeto, un Delegado es probablemente una mejor solución.

Como siempre, depende de la situación específica, pero las afirmaciones absolutas rara vez funcionan en el mundo real.

Personalmente, prefiero la devolución de llamada sobre el delegado en Swift para correlaciones lógicas simples, porque es bastante sencillo y fácil de entender. Al mismo tiempo, algunos prefieren delegar, ya que la delegación es un patrón popular en otros idiomas, como C #.

Hay algunas discusiones que encontré en línea:

1. "¿Por qué no debes usar delegados en Swift?" https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b#.hqb7zrc1v

2. Apple está cambiando su enfoque más en el patrón de devolución de llamada https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/

3. ¿Bloques o delegados? http://blog.stablekernel.com/blocks-or-delegates/

Después de leer estas discusiones, todavía estoy indeciso sobre la preferencia. Me gustaría saber cuándo es mejor usar cierres y cuándo es mejor usar delegados? y razones?

¡Gracias!