We have already mentioned that the user’s defaults take precedence over the factory defaults. In fact, several more levels of precedence exist. These levels of defaults are known as domains. Here are the domains used by an application, from highest to lowest priority:
Passed on the command line. Most people start applications by double-clicking an icon instead of from the command line, so this feature is seldom used in a production app.
What comes from the user’s defaults database.
Defaults that the user has set for his or her entire system.
Defaults based on the user’s preferred language.
The factory defaults ...