(note, I'm not aware of map/reduce discussions) 
since ```Cache``` extends ```Map``` and the ```ReduceCommand``` has the ```resultCacheName```, I think a new method is not needed. In the ```Map<KOut, VOut> reduce(ReduceCommand<KOut, VOut> reducer)```, it can decide to create a map or a cache and return it.