What do you think?
Rate this book


502 pages, CD-ROM
First published January 1, 1995
It reflects the contents of an upper-level undergraduate course on Object-Oriented Programming, given at the Vrije Universiteit Amsterdamin my opinion, it would have probably worked better as an M.Sc. Level course if supplemented with some of the research papers cited in the book.
...a number of alternative parameter passing mechanisms may be thought of, mechanisms that provide support for object migration and (partial) replication. These include call-by-share (which is employed for the language Orca, see Bal(1991)), call-by-unification (which is employed in DLP), and call-by-move and call-by-visit (which are supported by the language Emerald, Black and Hutchinson(1986).No definition or explanation is given for these mechanisms.
ContainerThe author also mentions non-standard subtyping also known as non-strict inheritance which highlights the confusion between using inheritance as programming shorthand and using it as subtyping. Take for example the class of Rectangle objects and the class of Square objects. Conceptually, Square should be a subclass of Rectangle (standard subtyping), which means that squares may respond to methods requesting their length and width and the Square class may include a new method called side since in a square its length is equal to its side. However from a programming point of view this may be inefficient, since Square inherits both a length and a width attribute, when one single side attribute suffices. Thus from a programming (non-standard subtyping) point of view a Rectangle should be defined as a subclass of Square! As far as I know every formal reasoning framework extant for object-oriented design eschews or at least frowns on non-standard subtyping.
→ Container
-----→ Collection
---------→ Set
----------→ Bag
----------------→ Dispenser
----------------------→ Stack
----------------------→ Queue
----------------→ Cursor
----------------------→ List
----------------------→ Tree
-----→ Table
---------→ Indexable
---------→ Hash