- Aggregate pattern
An

**Aggregate pattern**can refer to concepts in either statistics or computer programming. Both uses deal with considering a large case as composed of smaller, simpler, pieces.**Statistics**An aggregate pattern is an important statistical concept in many fields that rely on

statistics to predict the behavior of large groups, based on the tendencies of subgroups to consistently behave in a certain way. It is particularly useful insociology ,economics ,psychology , andcriminology .**Computer programming**In

Design Patterns , an aggregate is not a design pattern but rather refers to an object such as a list, vector, or generator which provides an interface for creatingiterator s. The following example code is in Python.for item in mylist: print "Mom, we're out of " + item + "!"

def fibonacci(n): a,b = 0,1 count = 0 while count < n: count += 1 a,b = b, a+b yield a

for x in fibonacci(10): print x

def fibsum(n): total = 0 for x in fibonacci(n): total += x return total

def fibsum_alt(n): """ Alternate implementation. demonstration that Python's built-in function sum() works with arbitrary iterators """ return sum(fibonacci(n))

myNumbers = [1,7,4,3,22]

def average(g): return float(sum(g))/len(g) #in Python 3.0 the cast to float will no longer be necessaryPython hides essentially all of the details using the [

*http://www.python.org/doc/lib/typeiter.html iterator protocol*] . Confusingly,Design Patterns uses "aggregate" to refer to the blank in the code`for x in ___:`

which is unrelated to the term "aggregation" [] . Neither of these terms refer to the statistical aggregation of data such as the act of adding up the Fibonacci sequence or taking the average of a list of numbers.Design Patterns , p. 22: "Aggregation implies that one object owns or is responsible for another object. ... Aggregation implies that an aggregate object and its owner have identical lifetimes."**See also***

Visitor pattern

*Template class

*Facade pattern

*Type safety

*Functional programming **References**

*Wikimedia Foundation.
2010.*