Подтвердить что ты не робот

Использование шаблонов проектирования в R

Использование шаблонов проектирования в программировании широко распространено на многих языках программирования. В качестве примера можно привести шаблон factory или singleton. Многие из этих шаблонов используют ориентацию объектов для создания абстракции и инкапсуляции в коде, они направлены на то, чтобы сделать код повторно используемым и структурированным. Многие из этих шаблонов дизайна могут также использоваться в R, возможно, используя библиотеку proto или стандартную ориентацию объекта R?

Мои вопросы:

  • Какой базовый код (S3, S4)/packages (proto, R.oo) можно использовать для воспроизведения шаблонов проектирования, например, упомянутых в книге Gamma et al?
  • Существуют ли примеры шаблонов проектирования, реализованных в R, как в базе R, так и в пакетах?
4b9b3361

Ответ 1

Некоторые примеры шаблонов проектирования:

  • Функция system.time() кажется очень похожей на узор декоратора. Тем не менее, почти исключительно декораторы упоминаются в контексте объектно-ориентированного программирования. Но тем не менее, он имеет ощущение декоратора, он расширяет (или украшает) существующий фрагмент кода (в ООП всегда объект) с дополнительной функциональностью, без необходимости менять кусок кода. Здесь system.time() показано в действии:

    system.time(bla <- Sys.sleep(1000))
    
  • @jverzani отправил пример одноэлементного шаблона в github.

  • Примером шаблона проектирования стратегии является семейство функций apply. Функциональность циклирования по данному объекту является общей, применяемая функция (стратегия) выбирается, когда пользователь поставляет эту функцию.