---
title: "Architecture"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Architecture}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(echo = FALSE)
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
# Class-diagram
```{r, eval = FALSE, echo = FALSE}
suppressMessages(library(plantuml))
uml_str <- paste(readLines("design.plantuml"), collapse = "\n")
uml <- plantuml::plantuml(x = uml_str)
plot(uml, file = "./vignettes/class_diagram.svg")
```
![Classdiagram](class_diagram.svg)
* *Rn1_statistics*, *GOF_model_info_extractor*, *GOF_model_simulator*,
*GOF_sim_wild_rademacher* and *GOF_model_trainer* follow the
strategy pattern
* *GOF_model_resample* follow the template pattern.
Note that the object-oriented concepts are realized via the
R6-package and that R6 actually does not have a real
interface-functionality or abstract classes.