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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,f5822e34389e371e X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,1dc0d0f1c69afb5a X-Google-Attributes: gid103376,public From: donh@syd.csa.com.au (Don Harrison) Subject: Re: polymophism Date: 1996/11/26 Message-ID: #1/1 X-Deja-AN: 200767343 sender: news@syd.csa.com.au x-nntp-posting-host: dev50 references: <6LW66Hqk3RB@herold.franken.de> organization: CSC Australia, Sydney reply-to: donh@syd.csa.com.au newsgroups: comp.lang.eiffel,comp.lang.ada Date: 1996-11-26T00:00:00+00:00 List-Id: Joachim Durchholz writes: :donh@syd.csa.com.au wrote 25.11.96: : :> You may be thinking of clusters (which aren't part of the language). These :> serve only to group classes into subsystems as an administrative convenience :> and have no semantic significance. : :Though clusters have been declared not to be part of the language, they :really are. :After all, it is the *compiler* that declares an error if it can't find a :class because it has been renamed via cluster configuration. Yes, renaming clauses in clusters *do* consitute part of the 'program' and convey essential semantics. I stand corrected. Such renaming effectively de-overloads class names. :Besides, I don't feel quite at home with the class = module requirement. I think this is still okay so long as you define a facade class, where needed, to provide a common interface to a cluster of classes. This delivers the scalability needed for large systems. :There are useful libraries that consist of dozens of tiny classes, some :containing nothing more than a few invariant or constant definitions. :Such classes have too fine granularity to allow easy understanding of a :system; you need larger units. Agree. I think the Cluster concept fill that gap :(and quite well, too). Agree (if used with facades). What Eiffel does *not* need (and can do without), IMO, is a package/namespace mechanism. Clusters are a more flexible solution for Eiffel because they contain only configuration information and are defined in separate files to classes. Consequently, clusters and classes can be changed independently and moving class texts is not necessary to include/exclude them. Don. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Don Harrison donh@syd.csa.com.au