From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,7f8fc37d854731d6 X-Google-Attributes: gid109fba,public X-Google-Thread: 114809,7f8fc37d854731d6 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,7f8fc37d854731d6 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,7f8fc37d854731d6 X-Google-Attributes: gid1108a1,public X-Google-Thread: 10461e,7f8fc37d854731d6 X-Google-Attributes: gid10461e,public From: jhd@herold.franken.de (Joachim Durchholz) Subject: Re: Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Date: 1996/11/08 Message-ID: <6KVOxOkk3RB@herold.franken.de>#1/1 X-Deja-AN: 195472480 references: <32813322.41C6@kyebek3.kjist.ac.kr> newsgroups: comp.object,comp.ai,comp.lang.ada,comp.lang.c++,comp.lang.smalltalk Date: 1996-11-08T00:00:00+00:00 List-Id: alovejoy@concentric.net wrote 08.11.96: > > I think this is a bit misleading. Seems I got mislead my self a bit :) > execution of a program. And in a Self program, classes never exist at all > (not even in the program text). Well, I don't know Self (or any other prototype language), so I'm a bit bewildered about what you say about this statement. Could anybody post a short characterisation of prototype languages? > > We don't specify a single objects when > > writing code for a class; instead, we specify the behaviour of a set of > > objects, of which there may be none, one, or an unlimited number present > > at run-time. > > To the extent that this is true, this is an artifact of using classes as an > abstraction mechanism to specify the behavior of objects. I don't think it is too artificial to define a class, even if it is for a single object. At least not if the class specification isn't longer or more complicated than the specification for the single object. I do see some overhead in that it is necessary to declare an attribute that is instantiated with the constructor of the class. Given the size of class texts, I doubt that this overhead is a problem. > > > Class inheritance is an abstraction mechanism for code sharing. > > > > It is much more. It is a mechanism for specifying similarities, and in > > this respect goes far beyond mere code sharing. > > A class specifies the internal mechanisms of an object. Class inheritance > therefore specifies the commonality of implementation mechanisms. > ... > This is actually what I was trying to get at > in saying that "class inheritance is an abstraction mechanism for code > [implementation mechanism] sharing." Not in all cases. Most OO languages have abstract/virtual/deferred classes that primarily serve to specify external behaviour, not implementation. I definitely agree that inheritance can be used for code sharing, but it is also useful for object classification. > The type/interface hierarchy is an important topic in design, and hence is > an important issue that should be addressed by a design methodology. > ... Agreed. (As with the rest of your post :) -Joachim -- Looking for a new job. Resume available on request. WWW version of resume available under http://www.franken.de/users/herold/jhd/resume/index.html