Hey everyone,

I am developing a package and I am wondering if there is a good practice
for naming classes, builders, attributes getters and setters when dealing
with object composition. I know that it is usually a good practice to give
to the builder the same name as the class and, if possible, to avoid to use
upper case letters. My problem is that, when I build an object containing
an other object (of an other class), at the end my getters can have the
same name as my builders. Here is an example.

Lets define a first class "bonds" to store atomic bonds information:
bonds <- function(ind1, ind2, order){
  obj <- data.frame(ind1 = ind1, ind2 = ind2, order = order)
  class(obj) <- c("bonds", class(obj))
  return(obj)
}

Now I when to define an other class to store atomic properties.
As atoms can be bonded to each other, I add a "bonds" attribute which is of
class "bonds".
atoms <- function(symb, mass, charge, bonds){
  obj <- data.frame(symb = symb, mass = mass, charge = charge)
  attr(obj, "bonds") <- bonds
  class(obj) <- c("atoms", class(obj))
  return(obj)
}
Now if I when to get the "bonds" attribute of an "atoms" object, I have to
define:
bonds <- function(x)
  UseMethod("bonds")

bonds.atoms <- function(x)
  attr(x, "bonds")

As you can see my getter has the same name as the builder for class "bonds".
Any suggestion?

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to