NEW: Master Swift design patterns with my latest book! >>

< Previous: Protocol extensions   Next: Protocols and extensions summary >

Protocol-oriented programming

Protocol extensions can provide default implementations for our own protocol methods. This makes it easy for types to conform to a protocol, and allows a technique called “protocol-oriented programming” – crafting your code around protocols and protocol extensions.

First, here’s a protocol called Identifiable that requires any conforming type to have an id property and an identify() method:

protocol Identifiable {
    var id: String { get set }
    func identify()

We could make every conforming type write their own identify() method, but protocol extensions allow us to provide a default:

extension Identifiable {
    func identify() {
        print("My ID is \(id).")

Now when we create a type that conforms to Identifiable it gets identify() automatically:

struct User: Identifiable {
    var id: String

let twostraws = User(id: "twostraws")

Swift on the server is here

Get ahead of the game and learn server-side Swift with my latest book – build real-world projects while you learn!

< Previous: Protocol extensions   Next: Protocols and extensions summary >
Click here to visit the Hacking with Swift store >>