| Newsgroups |
gmane.comp.audio.supercollider.user |
| Message-ID |
<[email protected]> |
Hello,
at the moment the simplest solution for me is to have one subclass of my main class and move my existing object-building functions there.
From what I understand in your replies, in the long run a more efficient way would be to use the „Component Pattern“ design -
keep everything „has-a“ as long as possible and only on the top interface level combine to an specific object like „glissandoSwarm“ ie
Thanks for a lot to chew on, and preventing me from going to dead ends
Maciej
> Am 24.03.2021 um 01:32 schrieb [email protected]:
>
> On Tue, Mar 23, 2021 at 11:55 PM <[email protected]> wrote:
>> Often it is better and more maintable to use object
>> composition ("has-a") instead of inheritance ("is-a")
>
> Fully agreed -- SC does "is-a" way too much, leading users to believe
> that "is-a" is the best way (or even the only way). (For instance, I
> haven't seen that question in a while, but it does come up from time
> to time: "How to subclass a GUI view?" The best answer is usually:
> Don't subclass, use SCViewHolder instead.)
>
> That's not to say that subclassing is always a bad idea -- I'm just
> re-emphasizing that, when we want to extend the behavior of an
> existing class, often we reach first for a subclass, but just as
> often, it's probably better to reach first for an Adapter or other
> form of object composition.
>
>> Finally, I would like to point out that you don't have to use sclang's
>> class system (= classic inheritance), you can also build your object
>> system with Events (= prototypical inheritance). Check out the
>> documentation of IdentityDictionary - especially the "parent" and
>> "proto" properties - for more information on this.
>
> Or the ddwPrototype quark, which makes ~environmentVars local to the
> prototype object, so, a bit more transparently object-like then Event
> prototypes. (Over ten thousand lines of Proto-based code in the .scd
> files here, if you want to see what that looks like --
> https://github.com/jamshark70/ddwChucklib-livecode/ .)
>
> hjh
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
> archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
> search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/