Some notes made from the terminology of the course description:
Notes in relation to oojavde1 Object Oriented Design For Java
Notes made before course based on course outline available from
www.qa.com:
Collaboration diagrams-messages marked as 2.1.1 analogous to sequence
diagrams
Constraints: OCL Description language
Patterns:
The Iterator pattern e.g. is done and next interface to list , bag,
whatever, implementation hidden.
The command pattern, similar to callback, an invoker invokes without
implementation knowledge of the invoker. this has been set up on the
object creation, eg. client creates a command then stores the command
which can execute in an invoker, it is like passing a callback over to
another piece of code, the callback structure is known, its
implementation is not. Command I execute but know next to nothing.
Idiom, language that cannot be understood from its constituent parts,
keeping tabs on.
Listeners: stick a listener onto the generating event thing, how is
this different from a callback with the generator calling the command?
Cohesion - work together, make sense together , knowing what each class
is for, single purpose.
coupling - interlink, relying on each others state -> bad.
Separation of policy from computation - an ideal perhaps.
Delegation: adapter pattern-convert this call to that call.
Bridge - fancy adapter where there is no one to one relationship
between this and that.
Proxy - think I am talking to the actual object, think ejb and working
out when to do the network round trip.
Decorator-adds to the interface it is implementing, component is passed
in on creation and decorator passes may calls to component. the
decorator can be easily nested. coffee example.
Template method pattern. fixes order of operation, but allows
subclasses to vary these steps as needed. like esql parser.
A class adapter commits to a concrete class. adapter is a subclass of
adaptee.
Null object, stops having to do if a==null everywhere.
Object for states: eg. delegate to a subclass depending on state.
collections for states: each state is represented by a selection of all
the objects in that state. The manager object holds the state in state
collections and is responsible for managing the life cycle of the
objects
The disposal method pattern, factory creation demands structured
disposal. garbage collection.
Events:
Pull model - polling
Push model - callbacks (these methods pull and push can be converted
between each other).
Chain of responsibility pattern, like the $PATH variable
Observer pattern: define a one to many dependency between objects so
that when one object changes state, all its dependents are notified and
updated automatically. Observers are called event listeners in java.
see http://www.c2.com, or pattern synopsis at mindspring.com for pattern
information, (search for pattern in page name on c2.com).