Protocol oriented programing can be used as a core Swift design pattern.
Different types are able to conform to the same protocol, value types can even conform to multiple protocols and even provide default method implementation.
Initially protocols are defined that can represent commonly used pro...