Q1. How do protocols and protocol extensions enable protocol-oriented programming?
A protocol declares requirements such as properties, methods, initialisers or associated types that conforming types implement. Swift encourages protocol-oriented program...