De los impresionantes documentos de Apple sobre el tema de la “herencia de protocolos”:
Un protocolo puede heredar uno o más protocolos y puede agregar requisitos adicionales además de los requisitos que hereda.
La herencia es una característica de la Programación Orientada a Objetos (OOP).
- ¿Cuál es el alcance de las pruebas de protocolo l2_l3?
- ¿Por qué el IRC no es tan popular como solía ser? ¿Cómo puede volverse popular nuevamente?
- ¿Qué protocolo de E / S (como USB, PCIe o SATA) es actualmente el mejor para aprender para la verificación de SOC?
- ¿Qué son el orden de bytes de red y el orden de bytes de host en la red informática?
- Cuando se diseña una aplicación o un dispositivo de red, ¿cómo y dónde se integra el conjunto TCP / IP para que funcione con otros sistemas de red?
En OOP, el código está estructurado en clases. Un ejemplo de una clase es: Coche, Persona, Casa: todas las entidades tangibles o conceptuales. Las clases tienen métodos, como Car.drive (), Person.sayHello () y House.build ().
Los protocolos en Swift funcionan como acuerdos entre clases. Al igual que un protocolo en el ejército, o en un hospital, define qué tareas deben cumplirse en caso de emergencia, un protocolo en Swift define qué métodos deben estar disponibles.
Un ejemplo: Mario es un PizzaMaker (clase) independiente. Realmente no le importa a quién hace pizzas: restaurante (clase), PrivatePerson (clase) o BachelorParty (clase). Siempre y cuando todos se adhieran a un protocolo: cocina. Mario solo puede hacer pizza cuando hay una Cocina disponible, y especialmente cuando la Cocina tiene el método “useOven”.
El protocolo Kitchen, con el método useOven, es un acuerdo entre PizzaMaker y cualquier otra clase. ¿El beneficio? Independientemente de la implementación de la clase objetivo, Mario puede hacer pizzas incluso si no sabe quién o dónde las está haciendo. ¡Mientras haya una cocina!
Esto hace que el código de computadora sea modular, con responsabilidades claras y una seguridad mejorada en tiempo de compilación.
Bien, pero ¿qué pasa con la herencia?
La herencia simplemente significa que puede tomar el protocolo, extenderlo y agregarle más métodos. Crea un nuevo protocolo, codifica que hereda del otro protocolo y le agrega más métodos. Todos los métodos antiguos existen, y los recién agregados.
Algunos ejemplos para “Cocina”
- Cocina -> SuperKitchen, agrega el método “useBigOven”
- Cocina -> RamsayKitchen, agrega el método “shoutProfanity”
- Cocina -> AsianKitchen, agrega el método “useWok”
Lectura adicional: El lenguaje de programación Swift: protocolos
¡Buena suerte!
Reinder