在我的AngularJS应用程序中,我有很多不同的工厂可以提出不同的REST
请求。
回过头来,我意识到他们都使用了很多相似的代码。这对于DRYness来说是可怕的,并且使得这个更加混乱,然后更长时间。
例如,他们都对cache
s执行相同的检查:
// Cache stuff
var cacheName = 'projects.rsrc.getProjectUsersService';
var cache = cacheAppFactory.get(cacheName);
if(clearCache) {
cacheAppFactory.clear(cacheName);
}
我想简单地将此代码放在一个函数中,该函数需要cacheName
并从每个工厂调用它。
有没有办法从工厂内部引用一些“全局”代码或函数?
答案 0 :(得分:0)
您可以扩展缓存工厂的功能,以注册使用缓存工厂缓存功能的所有其他工厂。
然后在缓存工厂中创建一个方法,该方法将返回所有已注册工厂的缓存。
这可能就像你可以得到的DRY一样,类似的原则可以应用于你认为重复过多的所有事情,而不仅仅是缓存内容。