[comp.object] "Wrappers" and "Container Objects"

eberard@com (Edward V. Berard) (06/25/91)

Folks,

I am attempting to track down some definitions and concepts. My questions
are:

	1. There are quite a few references for "container objects" (see,
	   e.g., bibliography). Some references seem to equate the term
	   "container object" with "composite object." Others seem to restrict
	   "container object" to strictly "homogeneous composite object."

	   Is there a preferred connotation? If you claim that there is, can
	   you supply me with some references to back up your claim?

	2. The term "wrapper" seems to be a specialized form of a container
	   class. While I have a general idea of the definition for this term,
	   I cannot seem to find any "formal," or at least citable references
	   for the term.

	3. Are there any related terms I should know about (e.g., I have heard
	   people use the term "whopper"), and are there any citable references
	   for these terms.

Thanks for any help.


			Short Bibliography


[Booch, 1991]. G. Booch, Object-Oriented Design With Applications,
Benjamin/Cummings, Menlo Park, California, 1991.

[Gorlen et al, 1990]. K.E. Gorlen, S. M. Orlow, and P.S. Plexico, Data
Abstraction and Object-Oriented Programming in C++, John Wiley and
Sons, New York, New York, 1990.

[Khoshafian and Abnous, 1990]. S. Khoshafian and R. Abnous, Object
Orientation: Concepts, Languages, Databases, User Interfaces,
Addison-Wesley Publishing Company, Reading, Massachusetts, 1990.

[Wirfs-Brock et al, 1990]. R. Wirfs-Brock, B. Wilkerson, and L. Wiener,
Designing Object-Oriented Software, Prentice-Hall, Englewood Cliffs,
New Jersey, 1990.



---------New Address---------New Phone Number---------New FAX Number--------
Edward V. Berard                                | Phone: (301) 417-9884
Berard Software Engineering, Inc.               | FAX:   (301) 417-0021
101 Lake Forest Blvd., Suite 360                | E-Mail: eberard@bse.com
Gaithersburg, Maryland 20877                    | 
---------New Address---------New Phone Number---------New FAX Number--------

haim@taichi.uucp (24122-Haim Kilov(L028)m000) (06/25/91)

I have tried to define a "general", i.e., not necessarily homogenous, composite
entity in [H.Kilov. Generic information modeling concepts: a reusable component
library, TOOLS'91, Prentice-Hall, 1991, pp. 187-201]. This definition seems
to be close enough to Y.Wand's [Y.Wand. A proposal for a formal model of
objects. In: Object-oriented concepts, databases, and applications. ACM Press
(Addison-Wesley), 1989, pp. 537-559], with an important exception concerning
emergent properties: Wand considers all emergent properties of a composite
to be "linked by object laws" to properties of its constituents, whereas
this need not be the case. There are some differences concerning resultant
properties as well.

Hope this helps.

-Haim Kilov
haim@bcr.cc.bellcore.com

johnson@cs.uiuc.EDU (Ralph Johnson) (06/26/91)

There seem to be two definitions of "container objects".  One is
what Smalltalk calls the collection classes, i.e. Sets, Arrays,
Dictionaries, Lists, etc.  The other is synonym for composite
object.  Since I'm a Smalltalk programmer, I think that Collection
is just as good a word as Container, and I also think that "composite"
is just as good as "container", so I would just as soon avoid the word.

To the best of my knowledge, "wrapper" and "whopper" started out as MIT flavor words, so you might find a reference by  talking to a Lisp person.

benson@milton.u.washington.edu (Dan Benson) (06/27/91)

I've also come across these terms but they refer to user interface
concepts under X Windows (I believe).  I first saw them in the latest
version of Smalltalk-80 (Release 4) which uses native windowing
systems so there's a bunch of new classes for building windows, views,
subviews, etc., using "containers" and "wrappers". 

Haved heard of "whoppers" except for hamburgers :-)
-- 
| Dan Benson                        benson@ee.washington.edu    |
| Dept. of Elec. Engr., FT-10                                   |
| University of Washington          (206) 685-7567              |
| Seattle, WA  98195                                            |

objtch@extro.ucc.su.OZ.AU (Peter Goodall) (06/27/91)

I have most often seen the term "Wrapper" used in the the context of 
creating an Object Oriented Smalltalk class to contain some 'procedural'
code from a foreign Application Progaramming Interface.

For example I recently built what I would call a Smalltalk "wrapper" for
Wang's Open Image API. So I can use the C-style API calls via a synthesised
Smalltalk subclass of Window. This lets me work in Smalltalk's normal
high-level way without seeing any nasty C.

-- 
Peter Goodall - Smalltalk Systems Consultant - objtch@extro.ucc.su.oz.au
      ObjecTech Pty. Ltd. - Software Tools, Training, and Advice
162 Burns Bay Rd, LANE COVE, NSW, AUSTRALIA. - Phone/Fax: +61 2 418-7433

dlw@odi.com (Dan Weinreb) (06/28/91)

In article <D2150022.ix4dgb@bse.com> eberard@com (Edward V. Berard) writes:


	   3. Are there any related terms I should know about (e.g., I have heard
	      people use the term "whopper"), and are there any citable references
	      for these terms.

I'm afraid I have to plead guilty here.  Flavors, for those who don't
know, was an object-oriented extension to Lisp; it was one of the
predecessors of CLOS.  At one point the Flavors implementation
acquired a feature called "wrappers", which doesn't actually have
anything to do with "wrapper classes"; they were actually "wrapper
methods".  We later invented a modified form of wrappers that did
mostly the same thing but not quite, and we introduced them to Flavors
so that people could experiment with them.  We needed a name, and
couldn't think of any way to characterize the differences between them
and "wrappers" that was brief enough to fit into a short name.  So I
made up the name "whoppers".  To my everlasting regret, since it is,
obviously, a pretty silly name.  That's all there is to it.  (Unless
someone else made the same mistake as I and introduced the same term
for some other purpose, heaven forbid.)