Difference between combine() and makeAggregateCombiner()

As seen in the HistogramAggregatorFactory, there are two methods combine() and makeAggregateCombiner(), are there any differences between these two methods and what was the purpose for adding makeAggregateCombiner() later despite of combine()?