Apple frameworks use delegation and observer pattern (NotificationCenter) heavily to pass information around. Although there is nothing wrong about these patterns, the actual implementation always looked a bit inconsistent to me.
Let’s look at the basic traits of these patterns first:
* Delegation: Supports 1-to-1, two-way communication.
* Observer: Supports 1-to-many,