In computer science, object composition (not to be
confused with function composition) is a way to combine simple objects or data
types into more complex ones. Compositions are a critical building block of
many basic data structures, including the tagged union, the linked list, and
the binary tree, as well as the object used in object-oriented programming.
A real-world example of composition may be seen in
the relation of an automobile to its parts, specifically: the automobile 'has
or is composed from' objects including steering wheel, seat, gearbox and
engine.
When, in a language, objects are typed, types can
often be divided into composite and no composite types, and composition can be
regarded as a relationship between types: an object of a composite type (e.g.
car) "has an" object of a simpler type (e.g. wheel).
Composition must be distinguished from sub typing
which is the process of adding detail to a general data type to create a more
specific data type. For instance, cars may be a specific type of vehicle: car
is a vehicle. Sub typing doesn't describe a relationship between different
objects, but instead, says that objects of a type are simultaneously objects of
another type.
In programming languages, composite objects are
usually expressed by means of references from one object to another; depending
on the language, such references may be known as fields, members, properties or
attributes, and the resulting composition as a structure, storage record,
tuple, user-defined type (UDT), or composite type.
No comments:
Post a Comment