Использование шаблонов проектирования в R
Использование шаблонов проектирования в программировании широко распространено на многих языках программирования. В качестве примера можно привести шаблон factory или singleton. Многие из этих шаблонов используют ориентацию объектов для создания абстракции и инкапсуляции в коде, они направлены на то, чтобы сделать код повторно используемым и структурированным. Многие из этих шаблонов дизайна могут также использоваться в R, возможно, используя библиотеку proto или стандартную ориентацию объекта R?
Мои вопросы:
- Какой базовый код (S3, S4)/packages (proto, R.oo) можно использовать для воспроизведения шаблонов проектирования, например, упомянутых в книге Gamma et al?
- Существуют ли примеры шаблонов проектирования, реализованных в R, как в базе R, так и в пакетах?
Ответы
Ответ 1
Некоторые примеры шаблонов проектирования:
-
Функция system.time()
кажется очень похожей на узор декоратора. Тем не менее, почти исключительно декораторы упоминаются в контексте объектно-ориентированного программирования. Но тем не менее, он имеет ощущение декоратора, он расширяет (или украшает) существующий фрагмент кода (в ООП всегда объект) с дополнительной функциональностью, без необходимости менять кусок кода. Здесь system.time()
показано в действии:
system.time(bla <- Sys.sleep(1000))
-
@jverzani отправил пример одноэлементного шаблона в github.
- Примером шаблона проектирования стратегии является семейство функций
apply
. Функциональность циклирования по данному объекту является общей, применяемая функция (стратегия) выбирается, когда пользователь поставляет эту функцию.