Janko Thyson
2010-Nov-21 22:18 UTC
[Rd] Ref classes: can I register fields as I register methods?
Hi there, is it possible to register fields as you can register methods with getRefClass("Classname")$methods(.)? I know that you should usually give some thought on which fields you need and hardcode them in the class def. But I''m playing around with dynamically creating/extending sort of a template class that already offers basic functionality shared by all objects that "inherit" from that class. If I follow the usual inheritance paradigm I would have to actually define those new "subclasses" and let them inherit from the superclass (contains argument(, right? But can I get around that by sort of registering new fields? Maybe with ''initFields(.)''? Thanks for any info on that, Janko ##### SYSTEM INFO ##### Windows XP SP3 R 2.12.0 Eclipse 3.6.1 (Helios) StatET 0.9.1 ##################### [[alternative HTML version deleted]]
John Chambers
2010-Nov-22 17:37 UTC
[Rd] Ref classes: can I register fields as I register methods?
Well, it's an interesting idea, and the current implementation would fit with it. One catch is that it goes against any obvious notion of checking for valid objects (admittedly, there are some difficulties in that already with active bindings being used). Another issue is that in normal R programming practice, your "template" class would be in a package, in a namespace, and therefore locked. Conceptually at least, one would not be allowed to modify that definition. Both these issues would be solved by using subclasses for the extensions, which seems more in the spirit of R. Seems like you could hide the subclass details from your users if you wanted to. So, something to think about, but the use case isn't convincing yet. John On 11/21/10 2:18 PM, Janko Thyson wrote:> Hi there, > > > > is it possible to register fields as you can register methods with > getRefClass("Classname")$methods(.)? > > > > I know that you should usually give some thought on which fields you need > and hardcode them in the class def. But I'm playing around with dynamically > creating/extending sort of a template class that already offers basic > functionality shared by all objects that "inherit" from that class. If I > follow the usual inheritance paradigm I would have to actually define those > new "subclasses" and let them inherit from the superclass (contains > argument(, right? But can I get around that by sort of registering new > fields? Maybe with 'initFields(.)'? > > > > Thanks for any info on that, > > Janko > > > > ##### SYSTEM INFO ##### > > Windows XP SP3 > > R 2.12.0 > > Eclipse 3.6.1 (Helios) > > StatET 0.9.1 > > ##################### > > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
Apparently Analagous Threads
- Reference Classes: removing methods -> implications for objects/instances of that class
- Reference classes: accessor functions via 'getRefClass(...)$accessors(...)'
- Reference Classes: how to clone/copy instances?
- Ref Classes: bug with using '.self' within initialize methods?
- Reference Classes: shortcut like 'isS4' for Ref Classes?