在R中使用设计模式

Pau*_*tra 25 oop design-patterns r

在编程中使用设计模式在很多编程语言中都有广泛的应用.许多例子是工厂单件设计模式.许多这些模式使用面向对象来在代码中创建抽象和封装,它们旨在使代码可重用和结构化.许多这些设计模式也可以在R中使用,可能是通过使用原型库或标准R对象方向?

我的问题是:

  • 我可以使用什么基本代码(S3,S4)/包(proto,R.oo)来重现设计模式,例如Gamma等人在书中提到的?
  • 是否在R中实现了设计模式的示例,无论是在基础R还是在包中?

Pau*_*tra 5

一些设计模式的例子:

  • system.time()函数的行为似乎很像装饰器模式。然而,在面向对象编程的上下文中几乎只提到了装饰器。但是,它仍然具有装饰器的感觉,它扩展(或装饰)现有的一段代码(在 OOP 中始终是一个对象)具有附加功能,而无需更改该段代码。这里system.time()显示在行动中:

    system.time(bla <- Sys.sleep(1000))
    
    Run Code Online (Sandbox Code Playgroud)
  • @jverzani在 github 上发布了一个单例模式示例。

  • 策略设计模式的一个例子是apply函数族。循环给定对象的功能是通用的,当用户提供函数时选择应用的函数(策略)。