Na abordagem do curso, novas negociações são adicionadas através de um método adiciona(). É possível fazer o mesmo com um setter, alterando apenas a expressão de chamada.
A minha dúvida é qual a diferença de cada abordagem. Se é uma diferença semântica, qual seria? Se há uma diferença de lógica ou de performance, qual método é o mais eficiente? Por último, se há apenas uma diferença de modelos de arquitetura, qual é o mais aceito?