[pt] COMPOSIÇÃO FLEXIVEL EM C MAIS MAIS 11

[pt] Injeção de dependências, uma forma de inversão de controle, é uma forma de estruturar a configuração e composição de componentes de software que traz vários benefícios como um acoplamento reduzido entre componentes. No entanto, um framework genérico de injeção de dependências requer instrospecç...

ver descrição completa

Detalhes bibliográficos
Autor: MAXIMILIEN PHILIPPE M A DE BAYSER
Formato: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2017
País:Brasil
Recursos:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
Repositorio:Repositório Institucional da PUC-RIO (Projeto Maxwell)
Idioma:inglés
OAI Identifier:oai:MAXWELL.puc-rio.br:28950
Acesso em linha:https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=28950&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=28950&idi=2
http://doi.org/10.17771/PUCRio.acad.28950
Access Level:acceso abierto
Palavra-chave:[pt] COMPONENTES DE SOFTWARE
[pt] INVERSAO DE CONTROLE
[pt] INJECAO DE DEPENDENCIAS
[pt] C PLUS PLUS 11
[pt] INTROSPECCAO
[pt] SERVICE COMPONENT ARCHITECTURE
[pt] SERVICOS
[pt] REFLEXAO
[pt] MODULOS
[en] SOFTWARE COMPONENTS
[en] INVERSION OF CONTROL
[en] DEPENDENCY INJECTION
[en] SERVICES
[en] REFLECTION
[en] MODULES
Descrição
Resumo:[pt] Injeção de dependências, uma forma de inversão de controle, é uma forma de estruturar a configuração e composição de componentes de software que traz vários benefícios como um acoplamento reduzido entre componentes. No entanto, um framework genérico de injeção de dependências requer instrospecção em tempo de execução, o que explica por que injeção de dependências é popular em Java mas praticamente inexistente em C Mais Mais. Neste trabalho apresentamos um sistema de introspecção para C Mais Mais 11 e mostramos como ele pode ser usado para melhorar uma implementação de Service Component Architecture (SCA) para C Mais Mais. Usamos vários novas funcionalidades de C Mais Mais 11 como perfect forwarding, variadic templates e lvalue references para melhorar a usabilidade da API de reflexão e minimizar o overhead de execução.