The observer pattern is used when many objects need to listen to changes in one or many other objects.
NotificationCenter is one of the oldest APIs in Foundation, available since macOS 10+ and iOS 2.0, and is used to implement the observer pattern quickly and safely. Using NSObject, it is also possible to use Key-Value Observing (KVO) to observe changes in objects.
In pure Swift, however, you will need to use a third-party object as the NotificationCenter in order to listen to change events. Swift also provides a simple observation mechanism that notifies you when local values are updated.