4.6. Iteração
Uma iteração é modelada por meio de um texto que se inicia com o asterisco (*) e em seguida descreve-se a condição que controla o número de repetições (de iterações). O texto entre colchetes define a regra de negócio de controle das iterações (exemplos: [para cada funcionário cadastrado], [para data da venda >= 01/01/2015], [para todos os assentos disponíveis]). Ao executar uma mensagem várias vezes implica realizar todo o caminho subordinado várias vezes também. Dessa forma, criamos laços de repetição que nos permitem controlar todo um conjunto de objetos e operações subordinadas.
No diagrama do item anterior você também poderá observar a existência de uma iteração no passo 1.2, onde há a expressão “* [para cada sessão cuja data >= hoje]: exclua(): void”. Essa expressão informa ao programador a regra de negócio a ser executada nesse instante. O programador deve transformar esse texto em um algoritmo que realize a operação indicada. Veja aqui a tradução do que está informado nessa linha.
Note que dentro do laço que criamos no item 1.2 há outra estrutura de repetição no item 1.2.1. Temos dois laços criados um dentro do outro: para cada sessão futura, todos os assentos relacionados a cada uma das sessões serão cancelados.
|
Uma dica: lembrando que a autorreferência é algo que acontece dentro do objeto, a visibilidade que esse método deve ter dentro do objeto deve ser do tipo “privado” para assegurar que somente será acionado no contexto do objeto. |
A tradução do que está informado na linha “* [para cada sessão cuja data >= hoje]: exclua(): void” é: