Neste exemplo simples precisamos apenas de ter uma classe que deverá ser capaz de 1) guardar uma série de números inteiros, 2) permitir adicionar e remover um número à série e 3) devolver a série de números. Esta entidade está concretizada na classes IntegerManager. Tal como dito anteriormente, a lógica de negócio da aplicação deverá estar concretizada nesta classe e não no código da interacção com o utilizador. Por essa razão, a regra de negócio que a série de inteiros só tem números únicos está concretizada no método add de IntegerManger.


package ex.core;

/**
 * This class is the single core entity of this small example. It holds a list of int numbers.
 **/

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

public class IntegerManager {
    private List<Integer> _numbers;

    public IntegerManager() {
        _numbers = new ArrayList<>();
    }

    public boolean addNumber(Integer n) {
        if (_numbers.contains(n))
          return false;

        _numbers.add(n);
        return true;
    }

    public boolean removeNumber(Integer n) {
        return _numbers.remove(n);
    }

    public List<Integer> getNumbers() {
        return Collections.unmodifiableList(_numbers);
    }
}