0%
Pular para o conteúdo principal
0%

3.3 Modelando com Dados Mutáveis

O Capítulo 2 tratou de dados compostos como meio de construir objetos computacionais que têm várias partes, a fim de modelar objetos do mundo real que possuem vários aspectos. Naquele capítulo, introduzimos a disciplina de abstração de dados, segundo a qual as estruturas de dados são especificadas em termos de construtores, que criam objetos de dados, e seletores, que acessam as partes de objetos de dados compostos. Mas agora sabemos que há outro aspecto dos dados que o Capítulo 2 não abordou. O desejo de modelar sistemas compostos por objetos que têm estado mutável nos leva à necessidade de modificar objetos de dados compostos, além de construí-los e selecionar deles. Para modelar objetos compostos com estado mutável, projetaremos abstrações de dados para incluir, além de seletores e construtores, operações chamadas mutadores, que modificam objetos de dados. Por exemplo, modelar um sistema bancário exige que mudemos os saldos das contas. Assim, uma estrutura de dados para representar contas bancárias pode admitir uma operação

set_balance(account, new_value)

que muda o saldo da conta designada para o novo valor designado. Os objetos de dados para os quais mutadores são definidos são conhecidos como objetos de dados mutáveis.

O Capítulo 2 introduziu pares como uma "cola" de propósito geral para sintetizar dados compostos. Começamos esta seção definindo mutadores básicos para pares, de modo que pares possam servir como blocos de construção para a criação de objetos de dados mutáveis. Esses mutadores aumentam muito o poder representacional dos pares, permitindo-nos construir estruturas de dados além das sequências e árvores com as quais trabalhamos na seção 2.2.1. Também apresentamos alguns exemplos de simulações nas quais sistemas complexos são modelados como coleções de objetos com estado local.