A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerenciamento de Estado de Objeto Alcides Calsavara.

Apresentações semelhantes


Apresentação em tema: "Gerenciamento de Estado de Objeto Alcides Calsavara."— Transcrição da apresentação:

1 Gerenciamento de Estado de Objeto Alcides Calsavara

2 Superclasse PO (PersistentObject) n operações: –saveState: armazena o estado do objeto no serviço de persistência –restoreState: recupera o estado do objeto do serviço de persistência

3 Operação saveState n parâmetro: ObjetState –contém o estado de todo o objeto n retorno: Boolean –indica SUCESSO ou FRACASSO n virtual –especializada em cada subclasse –cada subclasse empacota sua parcela do estado

4 Operação restoreState n parâmetro: ObjetState –contém o estado de todo o objeto n retorno: Boolean –indica SUCESSO ou FRACASSO n virtual –especializada em cada subclasse –cada subclasse desempacota sua parcela do estado

5 Representação de um objeto no serviço de persistência n cada objeto (seu estado apenas) é armazenado em um arquivo (ou em tabelas, como veremos no futuro) n o nome do arquivo deve ser único para cada objeto n o nome do arquivo pode ser igual ao OID do objeto

6 Representação de um objeto no serviço de persistência (cont.) n os arquivos que correspondem a objetos podem estar organizados de diferentes formas: –em diretórios simples –diretórios que representam a hierarquia de classes –diretórios que correspondem a agregaçoes de objetos –diretórios que permitem hash

7 Classe ObjectState n contém todo o estado de um objeto n oferece operações básicas para empacotar/desempacotar atributos de tipos básicos (int, long, char, float,...) n objeto de outra classe deve oferecer operações para se empacotar/desempacotar em uma instância de ObjectState. Exemplo: conjunto de OID

8 Exemplo n classe Veiculo: –marca : char* –ano : int –cor : enum { azul, amarelo, verde} n classe Carro: –numero de passageiros : int n classe Caminhao: –capacidade de carga : float

9 Exemplo (cont.) n classe Pessoa: –nome : char* –sexo: Boolean n associações: –classe Pessoa e classe Veiculo: uma pessoa é proprietária de n veículos –classe Pessoa e classe Carro: um carro transporta n pessoas Devem haver operações para ligar/desligar dois objetos

10 Exemplo (cont.) n classes Veiculo e Pessoa são subclasses de Object n cada classe define as operações save_state e restore_state n cada classe possui dois construtores: –criação: gera OID e chama save_state –reencarnação: usa OID fornecida como parâmetro para chamar restore_state n o destrutor da classe deve chamar save_state

11 Exemplo (cont.) n sugestão: defina uma classe String para manipulação de atributos do tipo char* –simplicidade de programação –segurança –deve possuir operações de empacotamento e desempacotamento em ObjectState

12 Exemplo (cont.) n Como um objeto empacota suas ligações, deve empacotar um conjunto de OID. Logo uma OID também deve ser capaz de se empacotar/desempacotar em um ObjectState.


Carregar ppt "Gerenciamento de Estado de Objeto Alcides Calsavara."

Apresentações semelhantes


Anúncios Google