Você está na página 1de 2

Atividade: Sistema de Manipulação de Elementos Hierárquicos

Objetivo:
Implementar um sistema que manipula uma estrutura hierárquica de elementos usando o
padrão Composite.

Passos:

Definir a Interface Componente:


Crie uma interface chamada Componente que representará tanto elementos individuais
quanto composições (elementos que contêm outros elementos).

public interface Componente {


void operacao();
}

Implementar Elementos Individuais:


Crie classes que implementem a interface Componente para representar elementos
individuais.

public class ElementoFolha implements Componente {


@Override
public void operacao() {
System.out.println("Executando operação em uma folha");
}
}

Implementar Composição:
Crie uma classe chamada ElementoComposto que implementa a interface Componente e
pode conter outros elementos (tanto individuais quanto compostos).

import java.util.ArrayList;
import java.util.List;

public class ElementoComposto implements Componente {


private List<Componente> elementos = new ArrayList<>();

public void adicionarElemento(Componente elemento) {


elementos.add(elemento);
}

@Override
public void operacao() {
System.out.println("Executando operação em um elemento
composto");

for (Componente elemento : elementos) {


elemento.operacao();
}
}
}

Testar o Sistema:
No método main ou em um teste unitário, crie instâncias de elementos individuais e
compostos. Adicione elementos individuais ao composto e execute a operação no composto
para verificar se a operação é executada recursivamente em todos os elementos.

public class TesteComposite {


public static void main(String[] args) {
ElementoFolha folha1 = new ElementoFolha();
ElementoFolha folha2 = new ElementoFolha();
ElementoComposto composto = new ElementoComposto();

composto.adicionarElemento(folha1);
composto.adicionarElemento(folha2);

composto.operacao();
}
}

Esta atividade permitirá entender como o padrão Composite pode ser usado para tratar
elementos individuais e composições de maneira uniforme, facilitando a manipulação de
estruturas hierárquicas.

Você também pode gostar