【发布时间】:2012-03-01 15:40:08
【问题描述】:
design patterns 在编程中的使用广泛分布在许多编程语言中。一些例子是factory 或singleton 设计模式。许多这些模式使用面向对象来在代码中创建抽象和封装,它们旨在使代码可重用和结构化。许多这些设计模式也可以在 R 中使用,可能是通过使用 proto 库或标准 R 面向对象?
我的问题是:
- 我可以使用哪些基本代码(S3、S4)/包(proto、R.oo)来重现 Gamma 等人的书中提到的设计模式?
- 是否有在 R 中实现的设计模式示例,无论是在基础 R 中还是在包中?
【问题讨论】:
-
R.oo 包在 R 中提供了类似 OOP 的功能(使用 S3 类)。它不支持全部的 OOP 特性,因此不支持全部的基于 OOP 的设计模式。我也会看看 S4 课程stat.auckland.ac.nz/S-Workshop/Gentleman/S4Objects.pdf
-
S4 类看起来很有希望,尽管与 e.g. 相比,构造对象的方式看起来有点笨拙。蟒蛇。
-
我已经使用参考类实现了一些在“Head First Design Patterns”中勾勒出来的设计模式。它们比 S4 方法更接近于其他语言中的 OO 使用,因此涉及的翻译更少。
-
您能发布一个指向您的工作的链接作为答案吗?或者如果它尚未在线,发布一些代码作为答案?
-
好的,我在这里放了一个单例模式的例子:gist.github.com/1953641 这确实是一个正式的练习,对于 R 用户来说可能有点神秘。
memoise包可以更容易地做到这一点,尽管我确实有一个用例。该结构的基本思想来自 Head First 书。
标签: oop r design-patterns