# Model-Defined Interfaces

### A Pattern for Better, Safer, and More Explicit API

October 24, 2022

Most iOS architectural patterns rely on protocols to define what data and behaviors (i.e. interfaces) will be available to client code. This is a perfectly workable approach, but it adds quite a bit of overhead in terms of creating the protocol and multiple conforming types.

For example:

protocol AuthenticationProvider . . .