<div dir="ltr">Thanks for that  Jörg .<div>I thought you people were all on holiday so I tried to help a bit. But you are the expert.</div><div><br></div><div>j.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 14, 2018 at 10:39 PM, Jörg <span dir="ltr"><<a href="mailto:joerg.straube@iaeth.ch" target="_blank">joerg.straube@iaeth.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Tomas<br>
<br>
As you said in one of your previous mails: there are different ways to do OOP in Oberon. My recommendation to separate data and methods (and collect all methods in an own RECORD) has basically two reasons:<br>
<br>
1) Space. It’s perhaps not so obvious in your Term example, but if you have objects like e.g. Figures, Circles, Rectangles ... you might have a large amount of methods (Draw, Fill, Rotate, Delete, Move, Shrink, Recolor...) . Let’s assume you prgram a game and your background landscape is composed of 1000s of Figures. And every Figure does not only store its data like radius and color but also all methods as well, the space in memory for all those objects is quite large. After all, keep in mind all the methods in all Figures point to the same procedures it‘s just a waste of memory to store the methods separately again and again in every figure.<br>
<br>
2) Consistency. If you have a Figure like a Circle, there might be 100 different instances of circles. The local data that is different per circle (Big, small, red, blue, filled...) is stored and varies per instance. But you expect that all circles behave the same. So it makes sense to collect the behaviour (=its methods) of the object „Circle“ in an own RECORD. And let all different instances of object Circle point to the one same behaviour.<br>
<br>
br, Jörg<br>
<div class="HOEnZb"><div class="h5"><br>
> Am 14.08.2018 um 19:48 schrieb Tomas Kral <<a href="mailto:thomas.kral@email.cz">thomas.kral@email.cz</a>>:<br>
> <br>
> Jan, Joerg,<br>
> <br>
> Thank you, recoding my example now. Just curious, is there a specific<br>
> reason to keep object's data from its methods?<br>
> <br>
> -- <br>
> Tomas Kral <<a href="mailto:thomas.kral@email.cz">thomas.kral@email.cz</a>><br>
> --<br>
> <a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
> <a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/<wbr>mailman/listinfo/oberon</a><br>
<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/<wbr>mailman/listinfo/oberon</a><br>
</div></div></blockquote></div><br></div>