Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中模仿消息传递OOP的更节省内存的方法?_R_Oop - Fatal编程技术网

在R中模仿消息传递OOP的更节省内存的方法?

在R中模仿消息传递OOP的更节省内存的方法?,r,oop,R,Oop,我正在寻找一种方法来实现传统的消息传递OOP,而不需要为大型对象集合占用大量内存 消息传递OOP(例如R6)在概念上比通用函数OOP(例如S3)更适合我复杂、不同寻常、高度专业化的用例。对于拥有自己功能的可变对象,实现毫不费力地表达了底层的心智模型,我可以对如何访问和修改对象建立更可靠的保证。到目前为止,我的包比以前几乎不使用任何MP OOP的同一个项目的迭代更容易阅读、理解、开发、维护和信任。软件的整体质量存在着巨大的差异 不幸的是,这个包一次需要创建数千个对象,我遇到了性能问题。我从R6开始

我正在寻找一种方法来实现传统的消息传递OOP,而不需要为大型对象集合占用大量内存

消息传递OOP(例如R6)在概念上比通用函数OOP(例如S3)更适合我复杂、不同寻常、高度专业化的用例。对于拥有自己功能的可变对象,实现毫不费力地表达了底层的心智模型,我可以对如何访问和修改对象建立更可靠的保证。到目前为止,我的包比以前几乎不使用任何MP OOP的同一个项目的迭代更容易阅读、理解、开发、维护和信任。软件的整体质量存在着巨大的差异

不幸的是,这个包一次需要创建数千个对象,我遇到了性能问题。我从R6开始,但很快就遇到了速度瓶颈。因此,我选择了有文档记录的带有函数的环境技术,以及一些构造函数上的自定义元编程,以确保继承仍然有效。(所有这些都在包的设计规范中有很好的记录。)示例:


new\u object我知道已经有至少一个工作组来改进R中可广泛重用的OOP系统,但其目标与本文的目标有些不同。我知道已经有至少一个工作组来改进R中可广泛重用的OOP系统,但是它的目标和这篇文章的目标有点不同。