Erich, thank you very much for the links!

On 01.04.2020 17:35, Erich Steinböck wrote:
> Rony, you find the DocBook reference at 
> https://tdg.docbook.org/tdg/4.5/docbook.html
> Each tag lists its allowed parents and children (if any).
>
> You can find ooRexx 4.2 documentation at
> https://sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/
Looking at the Set or Bag classes (in the 4.2 rexxpg.pdf book [1]) it is not 
documented that they
are inheriting from the MapCollection mixin class as well (and also it is not 
possible to realize
that they are actually specializing the ooRexx Object class directly), same is 
true for all classes
that inherit from more than one mixin class, e.g. the InputOutputStream mixin 
class being shown as a
specialisation of the Object class, no information that it actually inherits in 
addition from the
mixin class InputStream and the mixin class OutputStream itself, etc.!

This is probably owed to the fact that the author tried to have each class only 
once in the class
hierarchy to make it easy comprehendable. Having and employing multiple 
inheritance, however, would
probably mandate in these cases that these classes are not only showing 
directly underneath the
subclass/mixinclass'd class, but in addition also underneath each mixin class 
that gets inherited.
This probably will cause problems for beginners or people coming from languages 
that do not employ
multiple-inheritance (why does a class appear more than once in a hierarchy?).

Hence my attempt to "escape" this problem by depicting the class hierarchy such 
that each class is
shown only once, directly under the class it subclasses/mixinclasses, but 
giving the additional
information about inheritance, if employed (and which mixin classes in which 
sequence get inherited)
via "(inherit x y)" and also which class can be used for multiple inheritance 
by supplying the
"(mixin)" information next to those classes.

If time permits, I can come up with a class tree that lists classes that employ 
multiple inheritance
underneath each mixin class they inherit in addition, just to see the 
difference and guessing
whether it is clearer for beginners and newcomers by comparison.

Also, I could come up with additional listings in the sections that describe 
each class briefly that
list in the case of mixin classes the classes that inherit directly from it. 
This way studying the
brief descriptions of the classes will make the reader aware of this as well. 
Also this brief
description of classes could get extended with the brief information like "This 
class is a
mixinclass and it can therefore be inherited by other classes." and "This class 
inherits in addition
from the following mixin classes: ...". However, I would only add that 
information if it is seen as
helpful for beginners and newcomers.

---rony

[1] rexxpg.pdf, ooRexx 4.2:
<https://sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/rexxpg.pdf/download>




_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to