每个 Ember 应用程序都由一个扩展自 Application 的类来表示。该类用于声明和配置构成您应用程序的众多对象。
当您的应用程序启动时,它会创建一个用于管理其有状态方面的 ApplicationInstance。此实例充当为您应用程序所实例化对象的所有者("owner")。
从本质上讲,Application 定义了您的应用程序,而 ApplicationInstance 则管理其状态。
这种关注点分离不仅理清了应用程序的架构,还能提高其效率。当您的应用程序需要在测试和/或服务器端渲染(例如通过 FastBoot)过程中反复启动时,这一点尤为重要。单个 Application 的配置可以完成一次,并由多个有状态的 ApplicationInstance 实例共享。当这些实例不再需要时(例如测试运行结束或 FastBoot 请求完成时),它们即可被丢弃。