我经常在专业环境中使用 R 编程,我也为客户或同事编写包。这里的一些程序员有 Java 背景,坚持以面向对象的方式做所有事情,使用 S4 方法。另一方面,我的经验是,当试图让代码做你想做的事情时,S4 实现的性能通常会更差,并且会引起更多的头痛。
我绝对同意,在某些情况下,您必须能够以受控方式构造复杂对象或附加现有对象。但大多数时候,S4 实现也可以使用经典列表轻松完成,而无需像定义标准泛型、方法、构造函数、初始化程序等那样麻烦。
您何时考虑为 R 编写 S4 实现?
编辑:为了清楚起见,我确实很欣赏 R 中关于 OO 的一般答案和讨论。OOP 可以在 R 中以多种方式完成,但我的问题实际上是针对专门使用 S4 方法的附加值。