In this chapter, we have introduced the fundamentals behind object-oriented programming, and we have seen how to implement object-oriented systems within R with three different object models: S3, S4, and R6. We looked at the fundamental building blocks of object models, such as encapsulation, polymorphism, and hierarchies. We have shown you how to implement parametric polymorphism with S3 and S4, as well as regular polymorphism with R6, and we have shown how to use concepts like interfaces, even when there's no explicit support for them in R.
We have implemented a full object-oriented system to track cryptocurrencies information, and, while doing so, have looked at various patterns and techniques, as well as how the three different object models can be used together.
The type of object model to use is the subject of some controversy among R programmers, and the decision...