我对 AngularJs 比较陌生,我正在尝试用它构建一个单页应用程序。我的应用程序在内容管理站点中运行。我有 3 个工厂用于用户、组和站点功能。
我对使用 Angular 的 $cacheFactory 很感兴趣,但我不确定如果我的数据保留在工厂中会有什么好处,因为它是单例的。
例如,我的用户工厂有一个名为 allUsers 的对象。这个对象通过我的应用程序用于不同的视图。直观地说,它似乎应该被缓存,但我很难理解为什么因为这个对象在用户工厂中,可以从我的任何控制器访问。
我对 AngularJs 比较陌生,我正在尝试用它构建一个单页应用程序。我的应用程序在内容管理站点中运行。我有 3 个工厂用于用户、组和站点功能。
我对使用 Angular 的 $cacheFactory 很感兴趣,但我不确定如果我的数据保留在工厂中会有什么好处,因为它是单例的。
例如,我的用户工厂有一个名为 allUsers 的对象。这个对象通过我的应用程序用于不同的视图。直观地说,它似乎应该被缓存,但我很难理解为什么因为这个对象在用户工厂中,可以从我的任何控制器访问。
CacheFactory
是一家工厂:
工厂方法模式的目的是定义一个用于创建对象的接口,但将对象的实例化推迟到子类。
每次创建其类型的对象时都会创建新实例,这与 Singleton 不同:
单例模式的目的是确保只加载一个类的一个实例,并且该实例提供一个全局访问点。
在 Angular 中,与其他解决方案相比,CacheFactory 具有以下优势:
我不确定如果我的数据留在工厂有什么好处
CacheFactory 提供以下功能:
但是 CacheFactory 也有以下意想不到的行为:
参考