JavaScriptPOOdesafio

Sistema de plugins

Sistemas de plugins são usados em frameworks como Vue, Express e ferramentas como Webpack para permitir extensões sem modificar o código principal. Em vez de reescrever funcionalidades, você adiciona comportamentos externos de forma limpa e reutilizável. Dominar esse padrão ajuda a criar bibliotecas que outras pessoas (ou você mesmo) possam expandir facilmente.

O PROBLEMA

Implemente sistema de plugins: App com registerPlugin, use. Plugins são classes com install(app).

EXEMPLO

const app = new App();
app.registerPlugin(new LoggerPlugin());
app.use("logger").log("iniciando") → "[LOG] iniciando"

SOBRE O CONCEITO

O padrão Plugin define uma interface install(app) que cada plugin implementa, recebendo a instância do app. No construtor do App, armazene plugins em um Map. O método registerPlugin insere o plugin no mapa, e use recupera e chama install passando this. Erro comum: plugin não ter acesso ao app – isso ocorre se esquecer de passar this ao chamar install; o plugin precisa receber o app para registrar métodos. Outro erro: conflito de nomes – solução é usar um namespace ou prefixo nos métodos registrados, mas aqui o foco é a estrutura de classes: evite function ou objetos literais, use sempre class e new.

RESOLUÇÃO

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript