Misplaced Pages

Aggregate pattern

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Concepts in statistics and computer science
This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.
Find sources: "Aggregate pattern" – news · newspapers · books · scholar · JSTOR (March 2024)

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 in sociology, economics, psychology, and criminology.

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 creating iterators. The following example code is in Python.

def fibonacci(n: int):
    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: int) -> int:
    total = 0
    for x in fibonacci(n):
        total += x
    return total
def fibsum_alt(n: int) -> int:
    """
    Alternate implementation. demonstration that Python's built-in function sum()
    works with arbitrary iterators.
    """
    return sum(fibonacci(n))
myNumbers = 
def average(g) -> float:
    return float(sum(g)) / len(g)  # In Python 3 the cast to float is no longer be necessary

Python hides essentially all of the details using the 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.

See also

References

  1. 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."


Stub icon

This statistics-related article is a stub. You can help Misplaced Pages by expanding it.

Stub icon

This computer-programming-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: