Encapsulation
The final method for the getHistory
class will now be defined. It is defined in a separate section to stress an important point. An S3
object is generally a basic data structure, such as a vector or a list that has an additional class attribute defined. The functions that are defined for the class react to the class
attribute in a predictable way.
One side effect is that every element of an object from a given class is public data. The elements contained within an object can always be accessed. The result is that when programming in R, we must take extra steps to maintain discipline with respect to accessing the data elements maintained by an object. Code that directly accesses data elements within an object may work when first written, but any change to the class constructor risks breaking code in the other methods defined for a class.
With respect to our previous example, we have an accessor, the getHistory
method. If we have an object, called oneDie
, from the Die
class, we...