ChiMu  Publications  Java Development Standards Previous TOC Next 

Standard Definitions

This section collects my standard project-independent definition of terms. Though these do include terms that are relevant to the areas of specialty I normally deal with (Information Systems), it is only at the highest level.

Object

An identifiable, encapsulated entity that is interacted with by sending messages. Objects have behavior, state, and identity (but see ValueObject for a variation).

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. Protocol and interface can be synonymous. Certain contexts suggest using one or the other to prevent conflict with a language term (e.g. Java’s "interface").

Class

Describes the types and the implementation for a set of objects. A class conforms to (or implements) a Type, Protocol, or interface.

Factory

An object that can create other objects.



Identity

The ability to tell an object apart from another object independent 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. Primitive data types in Smalltalk (such as most numbers and Symbols) are ValueObjects. Java Strings are very close to ValueObjects except they are not guaranteed to be identical for the same value (they would be if they did an automatic "intern()"). Java primitive types are not Objects.

AbstractDataType

Synonymous with ValueObject in the Object realm.



Attribute

A public property of an object that shows the state of the object. Frequently there is a minimal collection of attributes that uniquely determine the state of the object.

BasicAttribute

An attribute that takes its value from ValueObjects. This is as opposed to associations which connect two or more objects with identity.

Association

A defined relationship between two objects with identity.



Instance Variable

A private implementation to remember part of an object's state



ObjectShadow

The information needed to see that an object exists without any true representation of the real object. Relational databases could be considered to work with ObjectShadows: they record the information about an object but never have a real object to interact with.



Proxy

An object that stands in for another object (the RealObject) and manages the client interaction with the RealObject.

Forwarder

A proxy which immediately forwards messages, possibly over process and machine boundaries, to the RealSubject.

Replicate

A proxy which holds local state and performs local operations which are later propagated to the RealSubject

Stub

A proxy which is simply a placeholder for the RealObject and must become another type of proxy (for example, forwarder or replicate) when interacted with by a client.

RealIdentity

The identity of the RealObject that a proxy represents instead of the proxy’s independent identity. For proxies we are rarely interested in their own identity, we just want to know the identity of the RealObject on the server.

IdentityKey

A value that defines the RealIdentity of a Proxy.

Binding

Associating a client object to a database object, which turns the client object into a Proxy



Builder

Builds up another object that can later be extracted

Writer

Writes information directly to another object (usually another writer or a Stream)

Reader

Reads information from another object (another Reader or a Stream)

Stream

Able to sequentially retrieve or store information

.

ChiMu  Publications  Java Development Standards

 Previous TOC Next 
    Copyright (c) 1997, Mark L. Fussell.

mirror of page http://www.chimu.com/publications/javaStandards/part0014.html