Question: I've been playing about with the `NSNotificationCenter` and I've been wondering when you would use your own custom notification center rather than the `defaultCenter`? And what would the advantages of this be?

Forgive my ignorance, but it seems like I could get along quite happily just using the `defaultCenter` and nothing else, but I want to make sure I am not missing something vital.

Answer: 
Although it's used heavily in AppKit via the `defaultCenter` singleton accessor, at it's heart, NSNotificationCenter is really just a "generic decoupling mechanism." Allowing you to `alloc/init` your own instances of it is just an expression of that generic-ness. If you wanted to use it for something else, you could.

To illustrate with a somewhat absurd example, think of it this way: NSDocument has a `windowControllers` accessor that returns a specific, blessed, important instance of NSArray that contains references to all the window controllers specific to that document. That said, NSArray is just a "generic list data structure". Just because there exists this special instance of it with a specified purpose doesn't mean it might not be useful to reuse NSArray for your own purposes. Both NSArray and NSNotificationCenter provide generic data structures/building blocks, specific instances of which are used in blessed "occupations" around AppKit, but both of which could be useful on their own.

The primary use case I've seen for creating standalone instances of NSNotificationCenter is when you want to run multiple instances of some complex subsystem on multiple threads in parallel and not have them potentially get confused by cross-thread notifications. In this case, the general pattern is to allocate one NSNotificationCenter per thread. This compartmentalizes the notifications for each network of objects to a single thread. This will generally be required if observers pass `nil` for the object parameter intending to listen to *all* notifications with a given name, regardless of source.

All that said, I concede that, in my experience, making private instances of NSNotificationCenter is pretty rare.
[Apple's Doc](https://developer.apple.com/documentation/foundation/notificationcenter)

> 
> 
> > 
> > 
> > > 
> > > If your app uses notifications extensively, you may want to create and post to your own notification centers rather than posting only to the default notification center. When a notification is posted to a notification center, the notification center scans through the list of registered observers, which may slow down your app. By organizing notifications functionally around one or more notification centers, less work is done each time a notification is posted, which can improve performance throughout your app.
> > > 
> > > 
> > > 
> > 
> > 
> > 
> 
> 
>