Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 10.1 — Declaração de Interface e Inversão de Dependências (DIP)

Contexto: Declaração de Interface e Inversão de Dependências (DIP) no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.

Requisitos de Execução:

  1. Criar interface ServicoTaxa e injetar no processador de pagamento desacoplando implementação.

Resultado Esperado

Serviço desacoplado através de contrato de interface.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_10_1_SeuNome
  2. Envie na tarefa: Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

public interface ServicoTaxa { double calcularTaxa(double v); }

public class TaxaBrasil implements ServicoTaxa {
    public double calcularTaxa(double v) { return v * 0.15; }
}

🔍 Nível 2: Prática

Problema 10.2 — Default Methods e Static Methods em Interfaces

Contexto: Default Methods e Static Methods em Interfaces no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.

Requisitos de Execução:

  1. Declarar método com implementação padrão default e método utilitário static em interface.

Resultado Esperado

Métodos default e estáticos provendo extensibilidade sem quebrar clientes legados.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_10_2_SeuNome
  2. Envie na tarefa: Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

public interface Validador<T> {
    boolean validar(T item);
    default boolean validarNaoNulo(T item) { return item != null && validar(item); }
}

⚡ Nível 3: Integração

Problema 10.3 — Múltiplas Interfaces e Resolução de Conflitos de Default Methods

Contexto: Múltiplas Interfaces e Resolução de Conflitos de Default Methods no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.

Requisitos de Execução:

  1. Resolver conflito de métodos default homônimos sobrescrevendo e invocando InterfaceA.super.metodo().

Resultado Esperado

Conflito de herança múltipla de comportamento resolvido explicitamente.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_10_3_SeuNome
  2. Envie na tarefa: Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

interface A { default void log() { System.out.println("A"); } }
interface B { default void log() { System.out.println("B"); } }

class Resolvedor implements A, B {
    public void log() { A.super.log(); }
}

🏆 Nível 4: Desafio Corporativo

Problema 10.4 — Interfaces Funcionais com @FunctionalInterface e Contratos SAM

Contexto: Interfaces Funcionais com @FunctionalInterface e Contratos SAM no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.

Requisitos de Execução:

  1. Declarar interface com único método abstrato e instanciá-la através de expressão lambda.

Resultado Esperado

Interface funcional SAM pronta para uso com lambdas e method references.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_10_4_SeuNome
  2. Envie na tarefa: Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

@FunctionalInterface
public interface Transformador<T, R> {
    R transformar(T entrada);
}

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos