This section collects definitions of terms needed for general Object-Relational mapping. An identifiable, encapsulated entity that is interacted with by sending messages. Type Specifies the public behavior and a conceptual grouping for objects that are members of the Type Protocol Specifies a collection of methods that together provide a higher level interface to an object. An object can be a Type, an object can support a Protocol, and a Type can specify support for a Protocol.
Class Describes the types and the implementation for a set of objects.
Factory An object that can create other objects. Identity The ability to tell an object apart from another object independently of whether their type and state is equal. Immutable Can not be changed after being created. ValueObject An object that does not have identity independent of its value. A ValueObject is immutable and should be considered identical to anything that it is equal to.