18 agosto, 2021

Selo DC

Revisando Tipos de Sistemas POO

Segundo Chambers (2016):

  • POO encapsulada: os métodos são encapsulado em suas classes, isto é, os objetos nesse estilo de programação contém os seus comportamentos;
  • POO funcional: os métodos pertencem as funções, das quais serão aplicadas aos objetos de determinada classe.

Sistema S3

  • Função Genérica: fgenerica()
  • classe: classe
  • Objeto de uma classe (Primeiro argumento da Função genérica)
  • Método: fgenerica.classe()

Ilustração

Aplicação

# Funcao generica
quem <- function(x) UseMethod("quem")
## Metodos
quem.eh <- function(x) print("Sou eu!")
quem.default <- function(x) print("??")
# Aplicacao:
pessoa <- "ben" # objeto sem atributo 'class'
quem(pessoa) # Aplicando o metodo S3
## [1] "??"
#--------
class(pessoa) <- "eh"
quem(pessoa)
## [1] "Sou eu!"
#---------
quem(unclass(pessoa)) # unclass omite o atributo 'class' ao objeto
## [1] "??"
#---------
class(pessoa) <- "outro" # Mudando o atributo 'class'
quem(pessoa)
## [1] "??"

Bons estudos!

Referências

Chambers, John M. 2016. Extending R. The R Series. Boca Raton, Florida: Chapman; Hall/CRC.