Protocolo vs. Clase La programación orientada a objetos nos acostumbró a pensar en términos modulares : Cómo puedo resolver este problema en pocos pasos, sin crear funciones gigantes ? Cómo puedo resolver este problema utilizando el principio de responsabilidad individual ? Cómo puedo crear código bien ordenado y fácil de comprender ? En Swift tenemos una herramienta que nos ayuda con el decoupling y con la tarea de independizar las piezas de código la una de la otra en nuestras apps : Protocolos ! Los Protocolos nos permiten establecer elementos y funciones sin implementación. protocol Instrumento { var afinado : Bool { get set } func afinar ( ) } class Bajo: Instrumento { var afinado : Bool func afinar ( ){ //Implementación } } La ventaja que nos dá el Protocolo, es que la falta de una implementación por defecto nos permite tener entidades que implementen sus funciones de la form