Angularjs Don';如果工厂是单件的,我不理解需要$cacheFactory
我对AngularJs比较陌生,我正试图用它构建一个单页应用程序。我的应用程序在内容管理网站中运行。我有3个工厂用于用户、组和站点功能 我对使用angular的$cacheFactory很感兴趣,但我不确定如果我的数据保留在工厂中会有什么好处,因为它是单例的Angularjs Don';如果工厂是单件的,我不理解需要$cacheFactory,angularjs,singleton,factory,language-features,cachefactory,Angularjs,Singleton,Factory,Language Features,Cachefactory,我对AngularJs比较陌生,我正试图用它构建一个单页应用程序。我的应用程序在内容管理网站中运行。我有3个工厂用于用户、组和站点功能 我对使用angular的$cacheFactory很感兴趣,但我不确定如果我的数据保留在工厂中会有什么好处,因为它是单例的 例如,我的用户工厂有一个名为allUsers的对象。此对象通过我的应用程序用于不同的视图。直观地看,这似乎是应该缓存的东西,但我很难理解为什么,因为这个对象在用户工厂中,可以从我的任何控制器访问 CacheFactory是一个工厂: 工厂方
例如,我的用户工厂有一个名为allUsers的对象。此对象通过我的应用程序用于不同的视图。直观地看,这似乎是应该缓存的东西,但我很难理解为什么,因为这个对象在用户工厂中,可以从我的任何控制器访问
CacheFactory
是一个工厂:
工厂方法模式的目的是定义一个接口,用于创建对象,但将对象的实例化推迟到子类
与单例不同,它在每次创建其类型的对象时都会创建新实例:
Singleton模式的目的是确保只加载类的一个实例,并且该实例提供全局访问点
在Angular中,CacheFactory与其他解决方案相比具有以下优势:
- 与控制器作用域不同,缓存可以注入到过滤器中
- 可以枚举缓存
- 缓存可以很容易地被破坏或重新定义
- 与控制器作用域不同,缓存不绑定到摘要数据绑定
- 与Cookie或localStorage/sessionStorage不同,缓存不与浏览器权限绑定
- '应使用定义的容量创建缓存'
- '应通过removeAll清除整个缓存,并在满时开始逐出'
- '如果操作链接,则应正确刷新和逐出项目'
- '如果删除了最旧的条目,则应清除下一个条目'
- '应仅在通过remove实际删除元素时减小大小'